From 4b6cac6ace406ffdefe4ea85121645351b133a5e Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Wed, 22 Jan 2025 19:14:13 -0500 Subject: [PATCH] Improvement to environment API for process operation. --- .../operations/AbstractProcessOperation.java | 13 +++++++++++++ .../rife/bld/operations/TestJUnitOperation.java | 12 ++++++++---- .../rife/bld/operations/TestRunOperation.java | 17 +++++++++++------ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/main/java/rife/bld/operations/AbstractProcessOperation.java b/src/main/java/rife/bld/operations/AbstractProcessOperation.java index 20881ad..da47897 100644 --- a/src/main/java/rife/bld/operations/AbstractProcessOperation.java +++ b/src/main/java/rife/bld/operations/AbstractProcessOperation.java @@ -170,6 +170,19 @@ public T workDirectory(File directory) { 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. * diff --git a/src/test/java/rife/bld/operations/TestJUnitOperation.java b/src/test/java/rife/bld/operations/TestJUnitOperation.java index 837188c..be07994 100644 --- a/src/test/java/rife/bld/operations/TestJUnitOperation.java +++ b/src/test/java/rife/bld/operations/TestJUnitOperation.java @@ -40,6 +40,7 @@ void testInstantiation() { void testPopulation() throws Exception { 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(); try { var java_tool = "javatool"; @@ -57,6 +58,7 @@ void testPopulation() operation1 .workDirectory(work_directory) .environment(environment) + .environment("env4", "val4") .javaTool(java_tool) .javaOptions(List.of(test_java_option1, test_java_option2)) .testToolOptions(List.of(test_tool_option1, test_tool_option2)) @@ -66,7 +68,7 @@ void testPopulation() .errorProcessor(test_error_consumer); assertEquals(work_directory, operation1.workDirectory()); - assertEquals(environment, operation1.environment()); + assertEquals(environment_full, operation1.environment()); assertEquals(java_tool, operation1.javaTool()); assertTrue(operation1.javaOptions().contains(test_java_option1)); assertTrue(operation1.javaOptions().contains(test_java_option2)); @@ -81,6 +83,7 @@ void testPopulation() var operation2 = new JUnitOperation(); operation2.workDirectory(work_directory); operation2.environment(environment); + operation2.environment("env4", "val4"); operation2.javaTool(java_tool); operation2.javaOptions().add(test_java_option1); operation2.javaOptions().add(test_java_option2); @@ -93,7 +96,7 @@ void testPopulation() operation2.errorProcessor(test_error_consumer); assertEquals(work_directory, operation2.workDirectory()); - assertEquals(environment, operation2.environment()); + assertEquals(environment_full, operation2.environment()); assertEquals(java_tool, operation2.javaTool()); assertTrue(operation2.javaOptions().contains(test_java_option1)); assertTrue(operation2.javaOptions().contains(test_java_option2)); @@ -131,7 +134,7 @@ void testExecute() public class Source1 { public final String name_; public Source1() { - name_ = System.getenv("execute_name"); + name_ = System.getenv("execute_name") + System.getenv("execute_number"); } public static void main(String[] arguments) @@ -163,7 +166,8 @@ public static void main(String[] arguments) var output = new StringBuilder(); var test_operation = new JUnitOperation() - .environment(Map.of("execute_name", "source1")) + .environment(Map.of("execute_name", "source")) + .environment("execute_number", "1") .mainClass("Source2") .classpath(List.of(build_main.getAbsolutePath(), build_test.getAbsolutePath())) .outputProcessor(s -> { diff --git a/src/test/java/rife/bld/operations/TestRunOperation.java b/src/test/java/rife/bld/operations/TestRunOperation.java index acffb24..a4533a2 100644 --- a/src/test/java/rife/bld/operations/TestRunOperation.java +++ b/src/test/java/rife/bld/operations/TestRunOperation.java @@ -41,6 +41,7 @@ void testInstantiation() { void testPopulation() throws Exception { 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(); try { var java_tool = "javatool"; @@ -59,6 +60,7 @@ void testPopulation() operation1 .workDirectory(work_directory) .environment(environment) + .environment("env4", "val4") .javaTool(java_tool) .javaOptions(List.of(run_java_option1, run_java_option2)) .classpath(List.of(run_classpath1, run_classpath2)) @@ -69,7 +71,7 @@ void testPopulation() .errorProcessor(run_error_consumer); assertEquals(work_directory, operation1.workDirectory()); - assertEquals(environment, operation1.environment()); + assertEquals(environment_full, operation1.environment()); assertEquals(java_tool, operation1.javaTool()); assertTrue(operation1.javaOptions().contains(run_java_option1)); assertTrue(operation1.javaOptions().contains(run_java_option2)); @@ -85,6 +87,7 @@ void testPopulation() var operation2 = new RunOperation(); operation2.workDirectory(work_directory); operation2.environment(environment); + operation2.environment("env4", "val4"); operation2.javaTool(java_tool); operation2.javaOptions().add(run_java_option1); operation2.javaOptions().add(run_java_option2); @@ -98,7 +101,7 @@ void testPopulation() operation2.errorProcessor(run_error_consumer); assertEquals(work_directory, operation2.workDirectory()); - assertEquals(environment, operation2.environment()); + assertEquals(environment_full, operation2.environment()); assertEquals(java_tool, operation2.javaTool()); assertTrue(operation2.javaOptions().contains(run_java_option1)); assertTrue(operation2.javaOptions().contains(run_java_option2)); @@ -136,7 +139,7 @@ void testExecute() public class Source1 { public final String name_; public Source1() { - name_ = System.getenv("execute_name"); + name_ = System.getenv("execute_name") + System.getenv("execute_number"); } public static void main(String[] arguments) @@ -156,7 +159,8 @@ public static void main(String[] arguments) var output = new StringBuilder(); var run_operation = new RunOperation() - .environment(Map.of("execute_name", "source1")) + .environment(Map.of("execute_name", "source")) + .environment("execute_number", "1") .mainClass("Source1") .classpath(List.of(build_main.getAbsolutePath())) .outputProcessor(s -> { @@ -187,7 +191,7 @@ void testExecuteModule() public class Source1 { public final String name_; public Source1() { - name_ = System.getenv("execute_name"); + name_ = System.getenv("execute_name") + System.getenv("execute_number"); } public static void main(String[] arguments) @@ -222,7 +226,8 @@ public static void main(String[] arguments) var output = new StringBuilder(); var run_operation = new RunOperation() - .environment(Map.of("execute_name", "source1")) + .environment(Map.of("execute_name", "source")) + .environment("execute_number", "1") .module("pkg") .modulePath(new File(destination_dir, destination_name).getAbsolutePath()) .outputProcessor(s -> {