SLING-6031 Teleporter.getService() should wait for required services

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1759492 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java b/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
index daf9168..28ff398 100644
--- a/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
+++ b/src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java
@@ -48,6 +48,7 @@
     private DependencyAnalyzer dependencyAnalyzer;
     private int testReadyTimeoutSeconds = 20;
     private int webConsoleReadyTimeoutSeconds = 30;
+    private int waitForServiceTimout = 10;
     private String baseUrl;
     private String serverCredentials;
     private String testServletPath = DEFAULT_TEST_SERVLET_PATH;
@@ -58,6 +59,7 @@
         final TinyBundle b = TinyBundles.bundle()
             .set(Constants.BUNDLE_SYMBOLICNAME, bundleSymbolicName)
             .set("Sling-Test-Regexp", c.getName() + ".*")
+            .set("Sling-Test-WaitForService-Timeout", Integer.toString(waitForServiceTimout))
             .add(c);
 
         for(Map.Entry<String, String> header : additionalBundleHeaders.entrySet()) {
@@ -110,6 +112,14 @@
         webConsoleReadyTimeoutSeconds = tm;
     }
     
+    /**
+     * Define how long to wait to get a service reference.
+     * This applies only on the server-side when using the {@link #getService(Class)} or {@link #getService(Class, String)} methods.
+     */
+    public void setWaitForServiceTimoutSeconds (int tm) {
+        waitForServiceTimout = tm;
+    }
+    
     /** Set the credentials to use to install our test bundle on the server */
     public void setServerCredentials(String username, String password) {
         serverCredentials = username + ":" + password;