diff --git a/akka-actor/src/main/scala/akka/routing/RouterConfig.scala b/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
index bf187c237c..a32142642c 100644
--- a/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
+++ b/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
@@ -3,6 +3,8 @@
*/
package akka.routing
+import akka.util.Collections.EmptyImmutableSeq
+
import scala.collection.immutable
import akka.ConfigurationException
import akka.actor.Actor
@@ -40,6 +42,7 @@ trait RouterConfig extends Serializable {
/**
* Create the actual router, responsible for routing messages to routees.
+ *
* @param system the ActorSystem this router belongs to
*/
def createRouter(system: ActorSystem): Router
@@ -132,7 +135,11 @@ abstract class GroupBase extends Group {
def getPaths: java.lang.Iterable[String] = null
@deprecated("Use paths with ActorSystem parameter instead", "2.4")
- override final def paths: immutable.Iterable[String] = immutableSeq(getPaths)
+ override final def paths: immutable.Iterable[String] = {
+ val tmp = getPaths
+ if (tmp != null) immutableSeq(tmp)
+ else null
+ }
def getPaths(system: ActorSystem): java.lang.Iterable[String]
diff --git a/akka-docs/rst/images/graph_stage_diagrams.graffle b/akka-docs/rst/images/graph_stage_diagrams.graffle
new file mode 100644
index 0000000000..957e6e8478
Binary files /dev/null and b/akka-docs/rst/images/graph_stage_diagrams.graffle differ
diff --git a/akka-docs/rst/images/stage_chain.png b/akka-docs/rst/images/stage_chain.png
deleted file mode 100644
index 4a97712093..0000000000
Binary files a/akka-docs/rst/images/stage_chain.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_conceptual.png b/akka-docs/rst/images/stage_conceptual.png
deleted file mode 100644
index 1cec7e33f9..0000000000
Binary files a/akka-docs/rst/images/stage_conceptual.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_doubler.png b/akka-docs/rst/images/stage_doubler.png
deleted file mode 100644
index c2495f969b..0000000000
Binary files a/akka-docs/rst/images/stage_doubler.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_filter.png b/akka-docs/rst/images/stage_filter.png
deleted file mode 100644
index 743b675dd0..0000000000
Binary files a/akka-docs/rst/images/stage_filter.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_map.png b/akka-docs/rst/images/stage_map.png
deleted file mode 100644
index 8d04b1be44..0000000000
Binary files a/akka-docs/rst/images/stage_map.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_msc_absorb_1.png b/akka-docs/rst/images/stage_msc_absorb_1.png
deleted file mode 100644
index 7b0aa27db6..0000000000
Binary files a/akka-docs/rst/images/stage_msc_absorb_1.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_msc_absorb_2.png b/akka-docs/rst/images/stage_msc_absorb_2.png
deleted file mode 100644
index a54ea66b6a..0000000000
Binary files a/akka-docs/rst/images/stage_msc_absorb_2.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_msc_buffer.png b/akka-docs/rst/images/stage_msc_buffer.png
deleted file mode 100644
index f6507381fb..0000000000
Binary files a/akka-docs/rst/images/stage_msc_buffer.png and /dev/null differ
diff --git a/akka-docs/rst/images/stage_msc_general.png b/akka-docs/rst/images/stage_msc_general.png
deleted file mode 100644
index 583fb91318..0000000000
Binary files a/akka-docs/rst/images/stage_msc_general.png and /dev/null differ
diff --git a/akka-docs/rst/images/stages.svg b/akka-docs/rst/images/stages.svg
deleted file mode 100644
index cbc02c63ff..0000000000
--- a/akka-docs/rst/images/stages.svg
+++ /dev/null
@@ -1,1124 +0,0 @@
-
-
-
-
diff --git a/akka-docs/rst/images/stages_sequence_charts.svg b/akka-docs/rst/images/stages_sequence_charts.svg
deleted file mode 100644
index 39e2037214..0000000000
--- a/akka-docs/rst/images/stages_sequence_charts.svg
+++ /dev/null
@@ -1,2310 +0,0 @@
-
-
-
-
diff --git a/akka-docs/rst/java/code/docs/AbstractJavaTest.scala b/akka-docs/rst/java/code/docs/AbstractJavaTest.scala
new file mode 100644
index 0000000000..26c760c426
--- /dev/null
+++ b/akka-docs/rst/java/code/docs/AbstractJavaTest.scala
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2016 Typesafe Inc.
+ */
+package docs
+
+import org.scalatest.junit.JUnitSuite
+
+/**
+ * Base class for all runnable example tests written in Java
+ */
+abstract class AbstractJavaTest extends JUnitSuite {
+
+}
diff --git a/akka-docs/rst/java/code/docs/actor/ActorDocTest.java b/akka-docs/rst/java/code/docs/actor/ActorDocTest.java
index 016e90f31b..469de97077 100644
--- a/akka-docs/rst/java/code/docs/actor/ActorDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/ActorDocTest.java
@@ -11,6 +11,8 @@ import akka.testkit.EventFilter;
import akka.testkit.TestEvent;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
+import docs.AbstractJavaTest;
+import org.scalatest.junit.JUnitSuite;
import scala.PartialFunction;
import scala.runtime.BoxedUnit;
import static docs.actor.Messages.Swap.Swap;
@@ -44,7 +46,7 @@ import scala.concurrent.Future;
import static akka.pattern.Patterns.gracefulStop;
//#import-graceFulStop
-public class ActorDocTest {
+public class ActorDocTest extends AbstractJavaTest {
public static Config config = ConfigFactory.parseString(
"akka {\n" +
@@ -323,7 +325,7 @@ public class ActorDocTest {
//#system-actorOf
// ActorSystem is a heavy object: create only one per application
final ActorSystem system = ActorSystem.create("MySystem", config);
- final ActorRef myActor = system.actorOf(Props.create(MyActor.class), "myactor");
+ final ActorRef myActor = system.actorOf(Props.create(FirstActor.class), "myactor");
//#system-actorOf
try {
new JavaTestKit(system) {
diff --git a/akka-docs/rst/java/code/docs/actor/FSMDocTest.java b/akka-docs/rst/java/code/docs/actor/FSMDocTest.java
index a624962591..ab74c21232 100644
--- a/akka-docs/rst/java/code/docs/actor/FSMDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/FSMDocTest.java
@@ -20,8 +20,9 @@ import akka.actor.Props;
import akka.testkit.JavaTestKit;
import akka.testkit.TestProbe;
import akka.testkit.AkkaSpec;
+import docs.AbstractJavaTest;
-public class FSMDocTest {
+public class FSMDocTest extends AbstractJavaTest {
static
//#data
diff --git a/akka-docs/rst/java/code/docs/actor/FaultHandlingTest.java b/akka-docs/rst/java/code/docs/actor/FaultHandlingTest.java
index e879d3e85e..c66dcce8a5 100644
--- a/akka-docs/rst/java/code/docs/actor/FaultHandlingTest.java
+++ b/akka-docs/rst/java/code/docs/actor/FaultHandlingTest.java
@@ -16,6 +16,7 @@ import akka.actor.OneForOneStrategy;
import akka.actor.Props;
import akka.actor.Terminated;
import akka.actor.UntypedActor;
+import docs.AbstractJavaTest;
import scala.collection.immutable.Seq;
import scala.concurrent.Await;
import static akka.pattern.Patterns.ask;
@@ -37,7 +38,7 @@ import org.junit.BeforeClass;
import org.junit.AfterClass;
//#testkit
-public class FaultHandlingTest {
+public class FaultHandlingTest extends AbstractJavaTest {
//#testkit
static
//#supervisor
diff --git a/akka-docs/rst/java/code/docs/actor/FaultHandlingTestJava8.java b/akka-docs/rst/java/code/docs/actor/FaultHandlingTestJava8.java
index d1f653854a..5b5795a056 100644
--- a/akka-docs/rst/java/code/docs/actor/FaultHandlingTestJava8.java
+++ b/akka-docs/rst/java/code/docs/actor/FaultHandlingTestJava8.java
@@ -14,6 +14,7 @@ import akka.japi.pf.DeciderBuilder;
import akka.japi.pf.ReceiveBuilder;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
+import org.scalatest.junit.JUnitSuite;
import scala.PartialFunction;
import scala.concurrent.Await;
import static akka.pattern.Patterns.ask;
@@ -35,7 +36,7 @@ import org.junit.AfterClass;
import scala.runtime.BoxedUnit;
//#testkit
-public class FaultHandlingTestJava8 {
+public class FaultHandlingTestJava8 extends JUnitSuite {
//#testkit
public static Config config = ConfigFactory.parseString(
diff --git a/akka-docs/rst/java/code/docs/actor/InboxDocTest.java b/akka-docs/rst/java/code/docs/actor/InboxDocTest.java
index 6bfcaf1d57..23ca52d77b 100644
--- a/akka-docs/rst/java/code/docs/actor/InboxDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/InboxDocTest.java
@@ -7,6 +7,7 @@ package docs.actor;
import java.util.concurrent.TimeUnit;
import akka.testkit.AkkaJUnitActorSystemResource;
+import docs.AbstractJavaTest;
import org.junit.ClassRule;
import org.junit.Test;
@@ -19,7 +20,7 @@ import akka.actor.Terminated;
import akka.testkit.AkkaSpec;
import akka.testkit.JavaTestKit;
-public class InboxDocTest {
+public class InboxDocTest extends AbstractJavaTest {
@ClassRule
public static AkkaJUnitActorSystemResource actorSystemResource =
diff --git a/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java b/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java
index 424df81f11..c9fef8c03d 100644
--- a/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java
+++ b/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java
@@ -7,11 +7,12 @@ import akka.actor.*;
import akka.japi.Procedure;
import akka.testkit.AkkaJUnitActorSystemResource;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.ClassRule;
import org.junit.Test;
import scala.Option;
-public class InitializationDocSpecJava {
+public class InitializationDocSpecJava extends AbstractJavaTest {
static public class PreStartInitExample extends UntypedActor {
diff --git a/akka-docs/rst/java/code/docs/actor/InitializationDocTest.java b/akka-docs/rst/java/code/docs/actor/InitializationDocTest.java
index fb3343a2e7..dab8144288 100644
--- a/akka-docs/rst/java/code/docs/actor/InitializationDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/InitializationDocTest.java
@@ -7,6 +7,7 @@ package docs.actor;
import akka.actor.*;
import akka.japi.pf.ReceiveBuilder;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -17,7 +18,7 @@ import scala.concurrent.Await;
import java.util.concurrent.TimeUnit;
-public class InitializationDocTest {
+public class InitializationDocTest extends AbstractJavaTest {
static ActorSystem system = null;
diff --git a/akka-docs/rst/java/code/docs/actor/SampleActorTest.java b/akka-docs/rst/java/code/docs/actor/SampleActorTest.java
index d1ea16a1a6..f068390775 100644
--- a/akka-docs/rst/java/code/docs/actor/SampleActorTest.java
+++ b/akka-docs/rst/java/code/docs/actor/SampleActorTest.java
@@ -8,13 +8,14 @@ import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
-public class SampleActorTest {
+public class SampleActorTest extends AbstractJavaTest {
static ActorSystem system;
diff --git a/akka-docs/rst/java/code/docs/actor/SchedulerDocTest.java b/akka-docs/rst/java/code/docs/actor/SchedulerDocTest.java
index 5cdad7acec..b58a9aa1d4 100644
--- a/akka-docs/rst/java/code/docs/actor/SchedulerDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/SchedulerDocTest.java
@@ -5,6 +5,7 @@ package docs.actor;
//#imports1
import akka.actor.Props;
+import docs.AbstractJavaTest;
import scala.concurrent.duration.Duration;
import java.util.concurrent.TimeUnit;
//#imports1
@@ -20,7 +21,7 @@ import akka.testkit.AkkaSpec;
import akka.testkit.AkkaJUnitActorSystemResource;
import org.junit.*;
-public class SchedulerDocTest {
+public class SchedulerDocTest extends AbstractJavaTest {
@Rule
public AkkaJUnitActorSystemResource actorSystemResource =
diff --git a/akka-docs/rst/java/code/docs/actor/TypedActorDocTest.java b/akka-docs/rst/java/code/docs/actor/TypedActorDocTest.java
index 541de57881..62e048a306 100644
--- a/akka-docs/rst/java/code/docs/actor/TypedActorDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/TypedActorDocTest.java
@@ -10,6 +10,7 @@ import akka.actor.*;
import akka.japi.*;
import akka.dispatch.Futures;
+import docs.AbstractJavaTest;
import scala.concurrent.Await;
import scala.concurrent.Future;
import scala.concurrent.duration.Duration;
@@ -25,7 +26,7 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
//#imports
-public class TypedActorDocTest {
+public class TypedActorDocTest extends AbstractJavaTest {
Object someReference = null;
ActorSystem system = null;
diff --git a/akka-docs/rst/java/code/docs/actor/UntypedActorDocTest.java b/akka-docs/rst/java/code/docs/actor/UntypedActorDocTest.java
index 0d83ce0988..c03661213d 100644
--- a/akka-docs/rst/java/code/docs/actor/UntypedActorDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/UntypedActorDocTest.java
@@ -18,6 +18,7 @@ import java.util.concurrent.TimeUnit;
import akka.testkit.AkkaJUnitActorSystemResource;
+import docs.AbstractJavaTest;
import org.junit.ClassRule;
import org.junit.Test;
@@ -83,7 +84,7 @@ import akka.testkit.JavaTestKit;
import akka.util.Timeout;
//#import-ask
-public class UntypedActorDocTest {
+public class UntypedActorDocTest extends AbstractJavaTest {
@ClassRule
public static AkkaJUnitActorSystemResource actorSystemResource =
diff --git a/akka-docs/rst/java/code/docs/actor/fsm/BuncherTest.java b/akka-docs/rst/java/code/docs/actor/fsm/BuncherTest.java
index 678b7b8bab..8c7947c4db 100644
--- a/akka-docs/rst/java/code/docs/actor/fsm/BuncherTest.java
+++ b/akka-docs/rst/java/code/docs/actor/fsm/BuncherTest.java
@@ -8,6 +8,7 @@ import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -20,7 +21,7 @@ import static docs.actor.fsm.Events.SetTarget;
import static docs.actor.fsm.Events.Flush.Flush;
//#test-code
-public class BuncherTest {
+public class BuncherTest extends AbstractJavaTest {
static ActorSystem system;
diff --git a/akka-docs/rst/java/code/docs/actor/fsm/FSMDocTest.java b/akka-docs/rst/java/code/docs/actor/fsm/FSMDocTest.java
index 155d0c02c1..3d8a42b805 100644
--- a/akka-docs/rst/java/code/docs/actor/fsm/FSMDocTest.java
+++ b/akka-docs/rst/java/code/docs/actor/fsm/FSMDocTest.java
@@ -6,6 +6,7 @@ package docs.actor.fsm;
import akka.actor.*;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.hamcrest.CoreMatchers;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -18,7 +19,7 @@ import static docs.actor.fsm.FSMDocTest.StateType.*;
import static docs.actor.fsm.FSMDocTest.Messages.*;
import static java.util.concurrent.TimeUnit.*;
-public class FSMDocTest {
+public class FSMDocTest extends AbstractJavaTest {
static ActorSystem system;
@BeforeClass
diff --git a/akka-docs/rst/java/code/docs/actorlambda/ActorDocTest.java b/akka-docs/rst/java/code/docs/actorlambda/ActorDocTest.java
index 242c5d56d8..1501a5c7b0 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/ActorDocTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/ActorDocTest.java
@@ -11,6 +11,7 @@ import akka.testkit.EventFilter;
import akka.testkit.TestEvent;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
+import docs.AbstractJavaTest;
import scala.PartialFunction;
import scala.runtime.BoxedUnit;
import static docs.actorlambda.Messages.Swap.Swap;
@@ -45,7 +46,7 @@ import scala.concurrent.Future;
import static akka.pattern.Patterns.gracefulStop;
//#import-graceFulStop
-public class ActorDocTest {
+public class ActorDocTest extends AbstractJavaTest {
public static Config config = ConfigFactory.parseString(
"akka {\n" +
diff --git a/akka-docs/rst/java/code/docs/actorlambda/FaultHandlingTest.java b/akka-docs/rst/java/code/docs/actorlambda/FaultHandlingTest.java
index 579c0a61d7..a9eb90fb38 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/FaultHandlingTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/FaultHandlingTest.java
@@ -14,6 +14,7 @@ import akka.japi.pf.DeciderBuilder;
import akka.japi.pf.ReceiveBuilder;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
+import docs.AbstractJavaTest;
import scala.PartialFunction;
import scala.concurrent.Await;
import static akka.pattern.Patterns.ask;
@@ -35,7 +36,7 @@ import org.junit.AfterClass;
import scala.runtime.BoxedUnit;
//#testkit
-public class FaultHandlingTest {
+public class FaultHandlingTest extends AbstractJavaTest {
//#testkit
public static Config config = ConfigFactory.parseString(
diff --git a/akka-docs/rst/java/code/docs/actorlambda/InitializationDocTest.java b/akka-docs/rst/java/code/docs/actorlambda/InitializationDocTest.java
index 236cd0bb42..ec0997352e 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/InitializationDocTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/InitializationDocTest.java
@@ -10,6 +10,7 @@ import akka.actor.Props;
import akka.japi.pf.FI;
import akka.japi.pf.ReceiveBuilder;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -18,7 +19,7 @@ import scala.concurrent.duration.Duration;
import java.util.concurrent.TimeUnit;
-public class InitializationDocTest {
+public class InitializationDocTest extends AbstractJavaTest {
static ActorSystem system = null;
diff --git a/akka-docs/rst/java/code/docs/actorlambda/SampleActorTest.java b/akka-docs/rst/java/code/docs/actorlambda/SampleActorTest.java
index 141225570f..8bb74332a1 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/SampleActorTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/SampleActorTest.java
@@ -8,13 +8,14 @@ import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
-public class SampleActorTest {
+public class SampleActorTest extends AbstractJavaTest {
static ActorSystem system;
diff --git a/akka-docs/rst/java/code/docs/actorlambda/fsm/BuncherTest.java b/akka-docs/rst/java/code/docs/actorlambda/fsm/BuncherTest.java
index fe52e96796..d1c83dbd6c 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/fsm/BuncherTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/fsm/BuncherTest.java
@@ -8,6 +8,7 @@ import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -20,7 +21,7 @@ import static docs.actorlambda.fsm.Events.SetTarget;
import static docs.actorlambda.fsm.Events.Flush.Flush;
//#test-code
-public class BuncherTest {
+public class BuncherTest extends AbstractJavaTest {
static ActorSystem system;
diff --git a/akka-docs/rst/java/code/docs/actorlambda/fsm/FSMDocTest.java b/akka-docs/rst/java/code/docs/actorlambda/fsm/FSMDocTest.java
index 8e5636198c..068ed7c9cb 100644
--- a/akka-docs/rst/java/code/docs/actorlambda/fsm/FSMDocTest.java
+++ b/akka-docs/rst/java/code/docs/actorlambda/fsm/FSMDocTest.java
@@ -6,6 +6,7 @@ package docs.actorlambda.fsm;
import akka.actor.*;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.hamcrest.CoreMatchers;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -18,7 +19,7 @@ import static docs.actorlambda.fsm.FSMDocTest.StateType.*;
import static docs.actorlambda.fsm.FSMDocTest.Messages.*;
import static java.util.concurrent.TimeUnit.*;
-public class FSMDocTest {
+public class FSMDocTest extends AbstractJavaTest {
static ActorSystem system;
@BeforeClass
diff --git a/akka-docs/rst/java/code/docs/camel/ActivationTestBase.java b/akka-docs/rst/java/code/docs/camel/ActivationTestBase.java
index 405aa09a63..9e7b883d93 100644
--- a/akka-docs/rst/java/code/docs/camel/ActivationTestBase.java
+++ b/akka-docs/rst/java/code/docs/camel/ActivationTestBase.java
@@ -9,6 +9,7 @@ package docs.camel;
import akka.testkit.JavaTestKit;
import akka.testkit.TestKit;
import akka.util.Timeout;
+ import docs.AbstractJavaTest;
import scala.concurrent.Future;
import scala.concurrent.duration.Duration;
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -16,7 +17,7 @@ package docs.camel;
import org.junit.Test;
-public class ActivationTestBase {
+public class ActivationTestBase extends AbstractJavaTest {
@SuppressWarnings("unused")
@Test
diff --git a/akka-docs/rst/java/code/docs/camel/CamelExtensionTest.java b/akka-docs/rst/java/code/docs/camel/CamelExtensionTest.java
index 21b48740a9..8cb3388cae 100644
--- a/akka-docs/rst/java/code/docs/camel/CamelExtensionTest.java
+++ b/akka-docs/rst/java/code/docs/camel/CamelExtensionTest.java
@@ -4,11 +4,12 @@ import akka.actor.ActorSystem;
import akka.camel.Camel;
import akka.camel.CamelExtension;
import akka.testkit.JavaTestKit;
+import docs.AbstractJavaTest;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.junit.Test;
-public class CamelExtensionTest {
+public class CamelExtensionTest extends AbstractJavaTest {
@Test
public void getCamelExtension() {
//#CamelExtension
diff --git a/akka-docs/rst/java/code/docs/cluster/ClusterDocTest.java b/akka-docs/rst/java/code/docs/cluster/ClusterDocTest.java
index b74c8eb127..1bcdcf5ea3 100644
--- a/akka-docs/rst/java/code/docs/cluster/ClusterDocTest.java
+++ b/akka-docs/rst/java/code/docs/cluster/ClusterDocTest.java
@@ -4,6 +4,7 @@
package docs.cluster;
import com.typesafe.config.ConfigFactory;
+import docs.AbstractJavaTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -13,7 +14,7 @@ import akka.cluster.Cluster;
import akka.testkit.JavaTestKit;
-public class ClusterDocTest {
+public class ClusterDocTest extends AbstractJavaTest {
static ActorSystem system;
diff --git a/akka-docs/rst/java/code/docs/ddata/DistributedDataDocTest.java b/akka-docs/rst/java/code/docs/ddata/DistributedDataDocTest.java
index f69c4312f5..62bcbd5239 100644
--- a/akka-docs/rst/java/code/docs/ddata/DistributedDataDocTest.java
+++ b/akka-docs/rst/java/code/docs/ddata/DistributedDataDocTest.java
@@ -8,7 +8,10 @@ import java.util.Arrays;
import java.util.Set;
import java.math.BigInteger;
import java.util.Optional;
+
+import akka.actor.*;
import com.typesafe.config.ConfigFactory;
+import docs.AbstractJavaTest;
import scala.concurrent.duration.Duration;
import scala.runtime.BoxedUnit;
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -20,9 +23,6 @@ import org.junit.BeforeClass;
import scala.concurrent.duration.FiniteDuration;
import java.util.concurrent.ThreadLocalRandom;
-import akka.actor.Actor;
-import akka.actor.ActorLogging;
-import akka.actor.ActorSystem;
import akka.cluster.Cluster;
import akka.cluster.ddata.*;
import akka.japi.pf.ReceiveBuilder;
@@ -33,26 +33,16 @@ import akka.testkit.AkkaSpec;
import akka.testkit.ImplicitSender;
import akka.testkit.JavaTestKit;
import akka.testkit.TestProbe;
-import akka.actor.ActorRef;
import akka.serialization.SerializationExtension;
-public class DistributedDataDocTest {
+public class DistributedDataDocTest extends AbstractJavaTest {
static ActorSystem system;
void receive(PartialFunction