Author: sseifert
Date: Fri Oct  7 11:39:37 2016
New Revision: 1763743

URL: http://svn.apache.org/viewvc?rev=1763743&view=rev
Log:
SLING-6110 ServerSideTeleporter can't read the bundle header 
Sling-Test-WaitForService-Timeout (patch provided by Marcel Jolk)

Modified:
    sling/trunk/testing/junit/core/pom.xml
    
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/ServerSideTeleporter.java
    
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/TeleporterRule.java

Modified: sling/trunk/testing/junit/core/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/pom.xml?rev=1763743&r1=1763742&r2=1763743&view=diff
==============================================================================
--- sling/trunk/testing/junit/core/pom.xml (original)
+++ sling/trunk/testing/junit/core/pom.xml Fri Oct  7 11:39:37 2016
@@ -123,10 +123,12 @@
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
+            <version>4.3.0</version>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
+            <version>4.3.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>

Modified: 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/ServerSideTeleporter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/ServerSideTeleporter.java?rev=1763743&r1=1763742&r2=1763743&view=diff
==============================================================================
--- 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/ServerSideTeleporter.java
 (original)
+++ 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/ServerSideTeleporter.java
 Fri Oct  7 11:39:37 2016
@@ -20,7 +20,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.sling.junit.Activator;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
 
 /** Server-side variant of the TeleporterRule, which provides
@@ -30,14 +32,21 @@ import org.osgi.framework.ServiceReferen
 class ServerSideTeleporter extends TeleporterRule {
     private final List<ServiceReference> toUnget = new 
ArrayList<ServiceReference>();
     private final BundleContext bundleContext;
+    private final Bundle bundleUnderTest;
     
     private static final int WAITFOR_SERVICE_TIMEOUT_DEFAULT_SECONDS = 10;
     
-    ServerSideTeleporter() {
+    ServerSideTeleporter(Class<?> classUnderTest) {
         bundleContext = Activator.getBundleContext();
-        if(bundleContext == null) {
+        if (bundleContext == null) {
             throw new IllegalStateException("Null BundleContext, should not 
happen when this class is used");
         }
+        
+        Bundle bundle = FrameworkUtil.getBundle(classUnderTest);
+        if (bundle == null) {
+            bundle = bundleContext.getBundle();
+        }
+        bundleUnderTest = bundle;
     }
     
     @Override
@@ -54,7 +63,7 @@ class ServerSideTeleporter extends Telep
      * Get OSGi service - if it is not available (yet?) try again and again 
until the configured timeout is reached.
      */
     public <T> T getService (Class<T> serviceClass, String ldapFilter) {
-        String configuredTimeout = 
(String)bundleContext.getBundle().getHeaders().get("Sling-Test-WaitForService-Timeout");
+        String configuredTimeout = 
(String)bundleUnderTest.getHeaders().get("Sling-Test-WaitForService-Timeout");
         if (configuredTimeout == null) {
             configuredTimeout = 
Integer.toString(WAITFOR_SERVICE_TIMEOUT_DEFAULT_SECONDS);
         }

Modified: 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/TeleporterRule.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/TeleporterRule.java?rev=1763743&r1=1763742&r2=1763743&view=diff
==============================================================================
--- 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/TeleporterRule.java
 (original)
+++ 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/rules/TeleporterRule.java
 Fri Oct  7 11:39:37 2016
@@ -78,7 +78,7 @@ public abstract class TeleporterRule ext
         TeleporterRule result = null;
         
         if(isServerSide()) {
-            result = new ServerSideTeleporter();
+            result = new ServerSideTeleporter(classUnderTest);
         } else {
             // Client-side. Instantiate the class dynamically to 
             // avoid bringing its dependencies into this module when


Reply via email to