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); }