You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2015/09/21 13:55:40 UTC
svn commit: r1704275 -
/sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
Author: bdelacretaz
Date: Mon Sep 21 11:55:35 2015
New Revision: 1704275
URL: http://svn.apache.org/viewvc?rev=1704275&view=rev
Log:
SLING-5040 - adapt to Customizer mechanism
Modified:
sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
Modified: sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java?rev=1704275&r1=1704274&r2=1704275&view=diff
==============================================================================
--- sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java (original)
+++ sling/trunk/testing/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java Mon Sep 21 11:55:35 2015
@@ -29,6 +29,7 @@ import java.util.Set;
import java.util.UUID;
import org.apache.sling.junit.rules.TeleporterRule;
+import org.junit.Rule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.ops4j.pax.tinybundles.core.TinyBundle;
@@ -37,13 +38,11 @@ import org.osgi.framework.Constants;
public class ClientSideTeleporter extends TeleporterRule {
- // TODO All this should be configurable with Options
- private final int testReadyTimeoutSeconds = 5;
+ private DependencyAnalyzer dependencyAnalyzer;
+ private int testReadyTimeoutSeconds = 5;
private String baseUrl;
- private final Set<String> dependencyAnalyzerIncludes = new HashSet<String>();
- private final Set<String> dependencyAnalyzerExcludes = new HashSet<String>();
private final Set<Class<?>> embeddedClasses = new HashSet<Class<?>>();
-
+
private InputStream buildTestBundle(Class<?> c, Collection<Class<?>> embeddedClasses, String bundleSymbolicName) {
final TinyBundle b = TinyBundles.bundle()
.set(Constants.BUNDLE_SYMBOLICNAME, bundleSymbolicName)
@@ -55,15 +54,36 @@ public class ClientSideTeleporter extend
return b.build(TinyBundles.withBnd());
}
- protected void setBaseUrl(String url) {
+ public void setBaseUrl(String url) {
baseUrl = url;
if(baseUrl.endsWith("/")) {
baseUrl = baseUrl.substring(0, baseUrl.length() -1);
}
}
+
+ @Override
+ protected void setClassUnderTest(Class<?> c) {
+ super.setClassUnderTest(c);
+ dependencyAnalyzer = DependencyAnalyzer.forClass(classUnderTest);
+ }
+
+ public void setTestReadyTimeoutSeconds(int tm) {
+ testReadyTimeoutSeconds = tm;
+ }
- public void embedClass(Class<?> c) {
+ public ClientSideTeleporter includeDependencyPrefix(String prefix) {
+ dependencyAnalyzer.include(prefix);
+ return this;
+ }
+
+ public ClientSideTeleporter excludeDependencyPrefix(String prefix) {
+ dependencyAnalyzer.exclude(prefix);
+ return this;
+ }
+
+ public ClientSideTeleporter embedClass(Class<?> c) {
embeddedClasses.add(c);
+ return this;
}
private String installTestBundle(TeleporterHttpClient httpClient) throws MalformedURLException, IOException {
@@ -77,25 +97,13 @@ public class ClientSideTeleporter extend
@Override
public Statement apply(final Statement base, final Description description) {
if(baseUrl == null) {
- // TODO - need a more flexible mechanism + need to wait for Sling to be ready
- final String propName = "launchpad.http.server.url";
- baseUrl = System.getProperty(propName);
- if(baseUrl == null || baseUrl.isEmpty()) {
- fail("Missing system property " + propName);
- }
+ fail("base URL is not set");
}
if(baseUrl.endsWith("/")) {
baseUrl = baseUrl.substring(0, baseUrl.length() - 1);
}
- final DependencyAnalyzer da = DependencyAnalyzer.forClass(classUnderTest);
- for(String include : dependencyAnalyzerIncludes) {
- da.include(include);
- }
- for(String exclude : dependencyAnalyzerExcludes) {
- da.exclude(exclude);
- }
- for(Class<?> c : da.getDependencies()) {
+ for(Class<?> c : dependencyAnalyzer.getDependencies()) {
embeddedClasses.add(c);
}