SLING-9700 Enable code coverage with JaCoCo

inherit system properties from parent and check command
diff --git a/pom.xml b/pom.xml
index 7896dfb..61e608b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,12 +78,9 @@
         </executions>
         <configuration>
           <redirectTestOutputToFile>true</redirectTestOutputToFile>
-          <systemProperties>
-            <property>
-              <name>bundle.filename</name>
-              <value>${basedir}/target/${project.build.finalName}.jar</value>
-            </property>
-          </systemProperties>
+          <systemPropertyVariables combine.children="append">
+            <bundle.filename>${basedir}/target/${project.build.finalName}.jar</bundle.filename>
+          </systemPropertyVariables>
         </configuration>
       </plugin>
       <plugin>
diff --git a/src/test/java/org/apache/sling/commons/crypto/it/tests/CryptoTestSupport.java b/src/test/java/org/apache/sling/commons/crypto/it/tests/CryptoTestSupport.java
index 940d149..9bff12e 100644
--- a/src/test/java/org/apache/sling/commons/crypto/it/tests/CryptoTestSupport.java
+++ b/src/test/java/org/apache/sling/commons/crypto/it/tests/CryptoTestSupport.java
@@ -18,8 +18,12 @@
  */
 package org.apache.sling.commons.crypto.it.tests;
 
+import java.util.Objects;
+
 import org.apache.sling.testing.paxexam.TestSupport;
 import org.ops4j.pax.exam.options.ModifiableCompositeOption;
+import org.ops4j.pax.exam.options.OptionalCompositeOption;
+import org.ops4j.pax.exam.options.extra.VMOption;
 
 import static org.apache.sling.testing.paxexam.SlingOptions.paxUrlWrap;
 import static org.apache.sling.testing.paxexam.SlingOptions.scr;
@@ -27,6 +31,7 @@
 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.vmOption;
+import static org.ops4j.pax.exam.CoreOptions.when;
 import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
 
 public abstract class CryptoTestSupport extends TestSupport {
@@ -44,8 +49,14 @@
             mavenBundle().groupId("com.google.guava").artifactId("guava").versionAsInProject(),
             mavenBundle().groupId("com.google.guava").artifactId("failureaccess").versionAsInProject(),
             mavenBundle().groupId("com.googlecode.java-diff-utils").artifactId("diffutils").versionAsInProject(),
-            vmOption(System.getProperty("jacoco.command"))
+            jacoco()
         );
     }
 
+    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);
+    }
+
 }