SLING-10490 Add jacoco command when set to base configuration
diff --git a/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java b/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
index 9189a02..72312fa 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
@@ -22,6 +22,7 @@
import java.io.IOException;
import java.net.ServerSocket;
import java.util.Dictionary;
+import java.util.Objects;
import java.util.UUID;
import javax.inject.Inject;
@@ -29,6 +30,8 @@
import org.ops4j.pax.exam.CoreOptions;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.options.ModifiableCompositeOption;
+import org.ops4j.pax.exam.options.OptionalCompositeOption;
+import org.ops4j.pax.exam.options.extra.VMOption;
import org.ops4j.pax.exam.util.PathUtils;
import org.ops4j.pax.tinybundles.core.TinyBundle;
import org.osgi.service.cm.ConfigurationAdmin;
@@ -43,6 +46,7 @@
import static org.ops4j.pax.exam.CoreOptions.repository;
import static org.ops4j.pax.exam.CoreOptions.streamBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import static org.ops4j.pax.exam.CoreOptions.vmOption;
import static org.ops4j.pax.exam.CoreOptions.when;
import static org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
@@ -62,6 +66,12 @@
return Integer.parseInt(properties.get("org.osgi.service.http.port").toString());
}
+ protected OptionalCompositeOption jacoco() {
+ final String jacocoCommand = System.getProperty("jacoco.command");
+ final VMOption option = Objects.nonNull(jacocoCommand) && !jacocoCommand.trim().isEmpty() ? vmOption(jacocoCommand) : null;
+ return when(Objects.nonNull(option)).useOptions(option);
+ }
+
private ModifiableCompositeOption configuration() {
return composite(
failOnUnresolvedBundles(),
@@ -71,7 +81,8 @@
CoreOptions.workingDirectory(workingDirectory()),
paxTinybundles(),
backing(),
- spifly()
+ spifly(),
+ jacoco()
);
}