diff --git a/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java b/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java index 70da410..fed2293 100644 --- a/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java +++ b/tooling/exam/container/src/main/java/org/apache/karaf/tooling/exam/container/internal/KarafTestContainer.java @@ -44,6 +44,7 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.util.*; @@ -115,7 +116,15 @@ public class KarafTestContainer implements TestContainer { } targetFolder = retrieveFinalTargetFolder(subsystem); + if(!framework.isFrameworkUrlPointsToTargetDirectory()) { extractKarafDistribution(sourceDistribution, targetFolder); + } else { + try { + targetFolder = new File(sourceDistribution.toURI()); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } File javaHome = new File(System.getProperty("java.home")); File karafBase = searchKarafBase(targetFolder); diff --git a/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionBaseConfigurationOption.java b/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionBaseConfigurationOption.java index b7d755d..e2088c1 100644 --- a/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionBaseConfigurationOption.java +++ b/tooling/exam/options/src/main/java/org/apache/karaf/tooling/exam/options/KarafDistributionBaseConfigurationOption.java @@ -29,6 +29,7 @@ public class KarafDistributionBaseConfigurationOption implements Option { protected String karafVersion; protected File unpackDirectory; protected boolean useDeployFolder = true; + protected boolean frameworkUrlPointsToTargetDirectory = false; public KarafDistributionBaseConfigurationOption() { frameworkURL = null; @@ -44,6 +45,15 @@ public class KarafDistributionBaseConfigurationOption implements Option { this.karafVersion = karafVersion; } + public KarafDistributionBaseConfigurationOption(String frameworkURL, String name, String karafVersion, + Boolean frameworkUrlPointsToTargetDirectory) { + this.frameworkUrlPointsToTargetDirectory = frameworkUrlPointsToTargetDirectory; + this.frameworkURL = frameworkURL; + frameworkURLReference = null; + this.name = name; + this.karafVersion = karafVersion; + } + public KarafDistributionBaseConfigurationOption(MavenUrlReference frameworkURLReference, String name, String karafVersion) { frameworkURL = null; @@ -145,4 +155,7 @@ public class KarafDistributionBaseConfigurationOption implements Option { return useDeployFolder; } + public boolean isFrameworkUrlPointsToTargetDirectory() { + return frameworkUrlPointsToTargetDirectory; + } }