Skip to content

Commit 1088ef6

Browse files
authored
Capture system properties and env variables for cli tools to use (#85885)
Currently any code needing to access system properties or environment variables does it with the static methods provided by Java. While this is ok in production since these are instantiated for the entire jvm once, it makes any code reading these properties difficult to test without mucking with the test jvm. This commit adds system properties and environment variables to the base Command class that our CLI tools use. While it does not propagate the properties and env down for all possible uses in the system, it is the first step, and it makes CLI testing a bit easier.
1 parent 2b097db commit 1088ef6

File tree

29 files changed

+301
-389
lines changed

29 files changed

+301
-389
lines changed

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/AddFileKeyStoreCommandTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
@@ -20,7 +22,6 @@
2022
import java.nio.file.Path;
2123
import java.util.ArrayList;
2224
import java.util.List;
23-
import java.util.Map;
2425
import java.util.stream.Stream;
2526

2627
import static org.hamcrest.Matchers.anyOf;
@@ -31,7 +32,7 @@ public class AddFileKeyStoreCommandTests extends KeyStoreCommandTestCase {
3132
protected Command newCommand() {
3233
return new AddFileKeyStoreCommand() {
3334
@Override
34-
protected Environment createEnv(Map<String, String> settings) throws UserException {
35+
protected Environment createEnv(OptionSet options) throws UserException {
3536
return env;
3637
}
3738
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/AddStringKeyStoreCommandTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
@@ -18,7 +20,6 @@
1820
import java.io.CharArrayWriter;
1921
import java.io.InputStream;
2022
import java.nio.charset.StandardCharsets;
21-
import java.util.Map;
2223

2324
import static org.hamcrest.Matchers.anyOf;
2425
import static org.hamcrest.Matchers.containsString;
@@ -31,7 +32,7 @@ public class AddStringKeyStoreCommandTests extends KeyStoreCommandTestCase {
3132
protected Command newCommand() {
3233
return new AddStringKeyStoreCommand() {
3334
@Override
34-
protected Environment createEnv(Map<String, String> settings) throws UserException {
35+
protected Environment createEnv(OptionSet options) throws UserException {
3536
return env;
3637
}
3738

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/ChangeKeyStorePasswordCommandTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
1416
import org.elasticsearch.env.Environment;
1517

16-
import java.util.Map;
17-
1818
import static org.hamcrest.Matchers.anyOf;
1919
import static org.hamcrest.Matchers.containsString;
2020

@@ -23,7 +23,7 @@ public class ChangeKeyStorePasswordCommandTests extends KeyStoreCommandTestCase
2323
protected Command newCommand() {
2424
return new ChangeKeyStorePasswordCommand() {
2525
@Override
26-
protected Environment createEnv(Map<String, String> settings) throws UserException {
26+
protected Environment createEnv(OptionSet options) throws UserException {
2727
return env;
2828
}
2929
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/CreateKeyStoreCommandTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
@@ -17,7 +19,6 @@
1719
import java.nio.charset.StandardCharsets;
1820
import java.nio.file.Files;
1921
import java.nio.file.Path;
20-
import java.util.Map;
2122

2223
import static org.hamcrest.Matchers.containsString;
2324

@@ -27,7 +28,7 @@ public class CreateKeyStoreCommandTests extends KeyStoreCommandTestCase {
2728
protected Command newCommand() {
2829
return new CreateKeyStoreCommand() {
2930
@Override
30-
protected Environment createEnv(Map<String, String> settings) throws UserException {
31+
protected Environment createEnv(OptionSet options) throws UserException {
3132
return env;
3233
}
3334
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/HasPasswordKeyStoreCommandTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.UserException;
1315
import org.elasticsearch.env.Environment;
1416

15-
import java.util.Map;
16-
1717
import static org.hamcrest.CoreMatchers.is;
1818
import static org.hamcrest.Matchers.containsString;
1919
import static org.hamcrest.Matchers.emptyString;
@@ -24,7 +24,7 @@ public class HasPasswordKeyStoreCommandTests extends KeyStoreCommandTestCase {
2424
protected Command newCommand() {
2525
return new HasPasswordKeyStoreCommand() {
2626
@Override
27-
protected Environment createEnv(Map<String, String> settings) throws UserException {
27+
protected Environment createEnv(OptionSet options) throws UserException {
2828
return env;
2929
}
3030
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/ListKeyStoreCommandTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
1416
import org.elasticsearch.env.Environment;
1517

16-
import java.util.Map;
17-
1818
import static org.hamcrest.Matchers.anyOf;
1919
import static org.hamcrest.Matchers.containsString;
2020

@@ -24,7 +24,7 @@ public class ListKeyStoreCommandTests extends KeyStoreCommandTestCase {
2424
protected Command newCommand() {
2525
return new ListKeyStoreCommand() {
2626
@Override
27-
protected Environment createEnv(Map<String, String> settings) throws UserException {
27+
protected Environment createEnv(OptionSet options) throws UserException {
2828
return env;
2929
}
3030
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/RemoveSettingKeyStoreCommandTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
1416
import org.elasticsearch.env.Environment;
1517

16-
import java.util.Map;
1718
import java.util.Set;
1819

1920
import static org.hamcrest.Matchers.anyOf;
@@ -25,7 +26,7 @@ public class RemoveSettingKeyStoreCommandTests extends KeyStoreCommandTestCase {
2526
protected Command newCommand() {
2627
return new RemoveSettingKeyStoreCommand() {
2728
@Override
28-
protected Environment createEnv(Map<String, String> settings) throws UserException {
29+
protected Environment createEnv(OptionSet options) throws UserException {
2930
return env;
3031
}
3132
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/ShowKeyStoreCommandTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.ExitCodes;
1315
import org.elasticsearch.cli.UserException;
1416
import org.elasticsearch.common.settings.KeyStoreWrapper;
1517
import org.elasticsearch.env.Environment;
1618

17-
import java.util.Map;
18-
1919
import static org.hamcrest.Matchers.anyOf;
2020
import static org.hamcrest.Matchers.containsString;
2121
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@ public class ShowKeyStoreCommandTests extends KeyStoreCommandTestCase {
2626
protected Command newCommand() {
2727
return new ShowKeyStoreCommand() {
2828
@Override
29-
protected Environment createEnv(Map<String, String> settings) throws UserException {
29+
protected Environment createEnv(OptionSet options) throws UserException {
3030
return env;
3131
}
3232
};

distribution/tools/keystore-cli/src/test/java/org/elasticsearch/cli/keystore/UpgradeKeyStoreCommandTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.elasticsearch.cli.keystore;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.elasticsearch.cli.Command;
1214
import org.elasticsearch.cli.UserException;
1315
import org.elasticsearch.common.settings.KeyStoreWrapper;
@@ -17,7 +19,6 @@
1719
import java.io.OutputStream;
1820
import java.nio.file.Files;
1921
import java.nio.file.Path;
20-
import java.util.Map;
2122

2223
import static org.hamcrest.Matchers.containsString;
2324
import static org.hamcrest.Matchers.equalTo;
@@ -29,12 +30,10 @@ public class UpgradeKeyStoreCommandTests extends KeyStoreCommandTestCase {
2930
@Override
3031
protected Command newCommand() {
3132
return new UpgradeKeyStoreCommand() {
32-
3333
@Override
34-
protected Environment createEnv(final Map<String, String> settings) {
34+
protected Environment createEnv(OptionSet options) {
3535
return env;
3636
}
37-
3837
};
3938
}
4039

distribution/tools/plugin-cli/src/test/java/org/elasticsearch/plugins/cli/ListPluginsCommandTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.elasticsearch.plugins.cli;
1010

11+
import joptsimple.OptionSet;
12+
1113
import org.apache.lucene.tests.util.LuceneTestCase;
1214
import org.elasticsearch.Version;
1315
import org.elasticsearch.cli.Command;
@@ -24,7 +26,6 @@
2426
import java.nio.file.NoSuchFileException;
2527
import java.nio.file.Path;
2628
import java.util.Arrays;
27-
import java.util.Map;
2829
import java.util.stream.Collectors;
2930

3031
@LuceneTestCase.SuppressFileSystems("*")
@@ -242,7 +243,7 @@ public void testExistingIncompatiblePlugin() throws Exception {
242243
protected Command newCommand() {
243244
return new ListPluginsCommand() {
244245
@Override
245-
protected Environment createEnv(Map<String, String> settings) {
246+
protected Environment createEnv(OptionSet options) {
246247
return env;
247248
}
248249

0 commit comments

Comments
 (0)