2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-25 00:07:12 -07:00

Improvement to environment API for process operation.

This commit is contained in:
Geert Bevin 2025-01-22 19:14:13 -05:00
parent 9362a60c52
commit 4b6cac6ace
3 changed files with 32 additions and 10 deletions

View file

@ -170,6 +170,19 @@ public abstract class AbstractProcessOperation<T extends AbstractProcessOperatio
return (T) this; return (T) this;
} }
/**
* Provides an environment variable to use for the operation.
*
* @param name the name of the environment variable
* @param value the value of the environment variable
* @return this operation instance
* @since 2.2.1
*/
public T environment(String name, String value) {
environment_.put(name, value);
return (T) this;
}
/** /**
* Provides environment variable entries to use for the operation. * Provides environment variable entries to use for the operation.
* *

View file

@ -40,6 +40,7 @@ public class TestJUnitOperation {
void testPopulation() void testPopulation()
throws Exception { throws Exception {
var environment = Map.of("env1", "val1", "env2", "val2", "env3", "val3"); var environment = Map.of("env1", "val1", "env2", "val2", "env3", "val3");
var environment_full = Map.of("env1", "val1", "env2", "val2", "env3", "val3", "env4", "val4");
var work_directory = Files.createTempDirectory("test").toFile(); var work_directory = Files.createTempDirectory("test").toFile();
try { try {
var java_tool = "javatool"; var java_tool = "javatool";
@ -57,6 +58,7 @@ public class TestJUnitOperation {
operation1 operation1
.workDirectory(work_directory) .workDirectory(work_directory)
.environment(environment) .environment(environment)
.environment("env4", "val4")
.javaTool(java_tool) .javaTool(java_tool)
.javaOptions(List.of(test_java_option1, test_java_option2)) .javaOptions(List.of(test_java_option1, test_java_option2))
.testToolOptions(List.of(test_tool_option1, test_tool_option2)) .testToolOptions(List.of(test_tool_option1, test_tool_option2))
@ -66,7 +68,7 @@ public class TestJUnitOperation {
.errorProcessor(test_error_consumer); .errorProcessor(test_error_consumer);
assertEquals(work_directory, operation1.workDirectory()); assertEquals(work_directory, operation1.workDirectory());
assertEquals(environment, operation1.environment()); assertEquals(environment_full, operation1.environment());
assertEquals(java_tool, operation1.javaTool()); assertEquals(java_tool, operation1.javaTool());
assertTrue(operation1.javaOptions().contains(test_java_option1)); assertTrue(operation1.javaOptions().contains(test_java_option1));
assertTrue(operation1.javaOptions().contains(test_java_option2)); assertTrue(operation1.javaOptions().contains(test_java_option2));
@ -81,6 +83,7 @@ public class TestJUnitOperation {
var operation2 = new JUnitOperation(); var operation2 = new JUnitOperation();
operation2.workDirectory(work_directory); operation2.workDirectory(work_directory);
operation2.environment(environment); operation2.environment(environment);
operation2.environment("env4", "val4");
operation2.javaTool(java_tool); operation2.javaTool(java_tool);
operation2.javaOptions().add(test_java_option1); operation2.javaOptions().add(test_java_option1);
operation2.javaOptions().add(test_java_option2); operation2.javaOptions().add(test_java_option2);
@ -93,7 +96,7 @@ public class TestJUnitOperation {
operation2.errorProcessor(test_error_consumer); operation2.errorProcessor(test_error_consumer);
assertEquals(work_directory, operation2.workDirectory()); assertEquals(work_directory, operation2.workDirectory());
assertEquals(environment, operation2.environment()); assertEquals(environment_full, operation2.environment());
assertEquals(java_tool, operation2.javaTool()); assertEquals(java_tool, operation2.javaTool());
assertTrue(operation2.javaOptions().contains(test_java_option1)); assertTrue(operation2.javaOptions().contains(test_java_option1));
assertTrue(operation2.javaOptions().contains(test_java_option2)); assertTrue(operation2.javaOptions().contains(test_java_option2));
@ -131,7 +134,7 @@ public class TestJUnitOperation {
public class Source1 { public class Source1 {
public final String name_; public final String name_;
public Source1() { public Source1() {
name_ = System.getenv("execute_name"); name_ = System.getenv("execute_name") + System.getenv("execute_number");
} }
public static void main(String[] arguments) public static void main(String[] arguments)
@ -163,7 +166,8 @@ public class TestJUnitOperation {
var output = new StringBuilder(); var output = new StringBuilder();
var test_operation = new JUnitOperation() var test_operation = new JUnitOperation()
.environment(Map.of("execute_name", "source1")) .environment(Map.of("execute_name", "source"))
.environment("execute_number", "1")
.mainClass("Source2") .mainClass("Source2")
.classpath(List.of(build_main.getAbsolutePath(), build_test.getAbsolutePath())) .classpath(List.of(build_main.getAbsolutePath(), build_test.getAbsolutePath()))
.outputProcessor(s -> { .outputProcessor(s -> {

View file

@ -41,6 +41,7 @@ public class TestRunOperation {
void testPopulation() void testPopulation()
throws Exception { throws Exception {
var environment = Map.of("env1", "val1", "env2", "val2", "env3", "val3"); var environment = Map.of("env1", "val1", "env2", "val2", "env3", "val3");
var environment_full = Map.of("env1", "val1", "env2", "val2", "env3", "val3", "env4", "val4");
var work_directory = Files.createTempDirectory("test").toFile(); var work_directory = Files.createTempDirectory("test").toFile();
try { try {
var java_tool = "javatool"; var java_tool = "javatool";
@ -59,6 +60,7 @@ public class TestRunOperation {
operation1 operation1
.workDirectory(work_directory) .workDirectory(work_directory)
.environment(environment) .environment(environment)
.environment("env4", "val4")
.javaTool(java_tool) .javaTool(java_tool)
.javaOptions(List.of(run_java_option1, run_java_option2)) .javaOptions(List.of(run_java_option1, run_java_option2))
.classpath(List.of(run_classpath1, run_classpath2)) .classpath(List.of(run_classpath1, run_classpath2))
@ -69,7 +71,7 @@ public class TestRunOperation {
.errorProcessor(run_error_consumer); .errorProcessor(run_error_consumer);
assertEquals(work_directory, operation1.workDirectory()); assertEquals(work_directory, operation1.workDirectory());
assertEquals(environment, operation1.environment()); assertEquals(environment_full, operation1.environment());
assertEquals(java_tool, operation1.javaTool()); assertEquals(java_tool, operation1.javaTool());
assertTrue(operation1.javaOptions().contains(run_java_option1)); assertTrue(operation1.javaOptions().contains(run_java_option1));
assertTrue(operation1.javaOptions().contains(run_java_option2)); assertTrue(operation1.javaOptions().contains(run_java_option2));
@ -85,6 +87,7 @@ public class TestRunOperation {
var operation2 = new RunOperation(); var operation2 = new RunOperation();
operation2.workDirectory(work_directory); operation2.workDirectory(work_directory);
operation2.environment(environment); operation2.environment(environment);
operation2.environment("env4", "val4");
operation2.javaTool(java_tool); operation2.javaTool(java_tool);
operation2.javaOptions().add(run_java_option1); operation2.javaOptions().add(run_java_option1);
operation2.javaOptions().add(run_java_option2); operation2.javaOptions().add(run_java_option2);
@ -98,7 +101,7 @@ public class TestRunOperation {
operation2.errorProcessor(run_error_consumer); operation2.errorProcessor(run_error_consumer);
assertEquals(work_directory, operation2.workDirectory()); assertEquals(work_directory, operation2.workDirectory());
assertEquals(environment, operation2.environment()); assertEquals(environment_full, operation2.environment());
assertEquals(java_tool, operation2.javaTool()); assertEquals(java_tool, operation2.javaTool());
assertTrue(operation2.javaOptions().contains(run_java_option1)); assertTrue(operation2.javaOptions().contains(run_java_option1));
assertTrue(operation2.javaOptions().contains(run_java_option2)); assertTrue(operation2.javaOptions().contains(run_java_option2));
@ -136,7 +139,7 @@ public class TestRunOperation {
public class Source1 { public class Source1 {
public final String name_; public final String name_;
public Source1() { public Source1() {
name_ = System.getenv("execute_name"); name_ = System.getenv("execute_name") + System.getenv("execute_number");
} }
public static void main(String[] arguments) public static void main(String[] arguments)
@ -156,7 +159,8 @@ public class TestRunOperation {
var output = new StringBuilder(); var output = new StringBuilder();
var run_operation = new RunOperation() var run_operation = new RunOperation()
.environment(Map.of("execute_name", "source1")) .environment(Map.of("execute_name", "source"))
.environment("execute_number", "1")
.mainClass("Source1") .mainClass("Source1")
.classpath(List.of(build_main.getAbsolutePath())) .classpath(List.of(build_main.getAbsolutePath()))
.outputProcessor(s -> { .outputProcessor(s -> {
@ -187,7 +191,7 @@ public class TestRunOperation {
public class Source1 { public class Source1 {
public final String name_; public final String name_;
public Source1() { public Source1() {
name_ = System.getenv("execute_name"); name_ = System.getenv("execute_name") + System.getenv("execute_number");
} }
public static void main(String[] arguments) public static void main(String[] arguments)
@ -222,7 +226,8 @@ public class TestRunOperation {
var output = new StringBuilder(); var output = new StringBuilder();
var run_operation = new RunOperation() var run_operation = new RunOperation()
.environment(Map.of("execute_name", "source1")) .environment(Map.of("execute_name", "source"))
.environment("execute_number", "1")
.module("pkg") .module("pkg")
.modulePath(new File(destination_dir, destination_name).getAbsolutePath()) .modulePath(new File(destination_dir, destination_name).getAbsolutePath())
.outputProcessor(s -> { .outputProcessor(s -> {