Skip to content

Commit

Permalink
Improvement to environment API for process operation.
Browse files Browse the repository at this point in the history
  • Loading branch information
gbevin committed Jan 23, 2025
1 parent 9362a60 commit 4b6cac6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 10 deletions.
13 changes: 13 additions & 0 deletions src/main/java/rife/bld/operations/AbstractProcessOperation.java
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down
12 changes: 8 additions & 4 deletions src/test/java/rife/bld/operations/TestJUnitOperation.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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))
Expand All @@ -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));
Expand All @@ -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);
Expand All @@ -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));
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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 -> {
Expand Down
17 changes: 11 additions & 6 deletions src/test/java/rife/bld/operations/TestRunOperation.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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))
Expand All @@ -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));
Expand All @@ -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);
Expand All @@ -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));
Expand Down Expand Up @@ -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)
Expand All @@ -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 -> {
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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 -> {
Expand Down

0 comments on commit 4b6cac6

Please sign in to comment.