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