diff --git a/akka-contrib/docs/index.rst b/akka-contrib/docs/index.rst index e6701d5f35..5dd2117905 100644 --- a/akka-contrib/docs/index.rst +++ b/akka-contrib/docs/index.rst @@ -1,3 +1,5 @@ +.. _akka-contrib: + External Contributions ====================== diff --git a/akka-docs/rst/cluster/cluster-usage-scala.rst b/akka-docs/rst/cluster/cluster-usage-scala.rst index f0dec3c590..bc2e8b90a8 100644 --- a/akka-docs/rst/cluster/cluster-usage-scala.rst +++ b/akka-docs/rst/cluster/cluster-usage-scala.rst @@ -543,7 +543,7 @@ How to Test :ref:`multi-node-testing` is useful for testing cluster applications. Set up your project according to the instructions in :ref:`multi-node-testing` and :ref:`multi-jvm-testing`, i.e. -add the ``sbt-multi-jvm`` plugin and the dependency to ``akka-remote-tests-experimental``. +add the ``sbt-multi-jvm`` plugin and the dependency to ``akka-multi-node-testkit``. First, as described in :ref:`multi-node-testing`, we need some scaffolding to configure the ``MultiNodeSpec``. Define the participating roles and their :ref:`cluster_configuration_scala` in an object extending ``MultiNodeConfig``: diff --git a/akka-docs/rst/dev/multi-jvm-testing.rst b/akka-docs/rst/dev/multi-jvm-testing.rst index 6b85a00485..e94e844a12 100644 --- a/akka-docs/rst/dev/multi-jvm-testing.rst +++ b/akka-docs/rst/dev/multi-jvm-testing.rst @@ -70,7 +70,7 @@ Here is an example Build.scala file that uses the MultiJvm plugin: // ---- test dependencies ---- "com.typesafe.akka" %% "akka-testkit" % "@version@" % "test" @crossString@, - "com.typesafe.akka" %% "akka-remote-tests-experimental" % "@version@" % + "com.typesafe.akka" %% "akka-multi-node-testkit" % "@version@" % "test" @crossString@, "org.scalatest" %% "scalatest" % "1.9.1" % "test", "junit" % "junit" % "4.5" % "test" diff --git a/akka-docs/rst/dev/multi-node-testing.rst b/akka-docs/rst/dev/multi-node-testing.rst index eb293eaeb8..d1dae07ea2 100644 --- a/akka-docs/rst/dev/multi-node-testing.rst +++ b/akka-docs/rst/dev/multi-node-testing.rst @@ -173,10 +173,10 @@ The multi node testing kit is a separate jar file. Make sure that you have the f .. parsed-literal:: - "com.typesafe.akka" %% "akka-remote-tests-experimental" % "@version@" @crossString@ + "com.typesafe.akka" %% "akka-multi-node-testkit" % "@version@" @crossString@ If you are using the latest nightly build you should pick a timestamped Akka version from -``_. +``_. We recommend against using ``SNAPSHOT`` in order to obtain stable builds. A Multi Node Testing Example diff --git a/akka-docs/rst/intro/getting-started.rst b/akka-docs/rst/intro/getting-started.rst index d7a1c18bd7..8c1013181f 100644 --- a/akka-docs/rst/intro/getting-started.rst +++ b/akka-docs/rst/intro/getting-started.rst @@ -31,16 +31,55 @@ Modules Akka is very modular and consists of several JARs containing different features. -- ``akka-actor`` -- Classic Actors, Typed Actors, IO Actor etc. -- ``akka-remote`` -- Remote Actors -- ``akka-testkit`` -- Toolkit for testing Actor systems -- ``akka-kernel`` -- Akka microkernel for running a bare-bones mini application server -- ``akka-transactor`` -- Transactors - transactional actors, integrated with Scala STM -- ``akka-agent`` -- Agents, integrated with Scala STM -- ``akka-camel`` -- Apache Camel integration -- ``akka-zeromq`` -- ZeroMQ integration -- ``akka-slf4j`` -- SLF4J Logger (event bus listener) -- ``akka-filebased-mailbox`` -- Akka durable mailbox (find more among community projects) +- ``akka-actor`` – Classic Actors, Typed Actors, IO Actor etc. + +- ``akka-agent`` – Agents, integrated with Scala STM + +- ``akka-camel`` – Apache Camel integration + +- ``akka-dataflow`` – add-on to SIP-14 futures supporting implicit + continuation-passing style + +- ``akka-file-mailbox`` – Akka durable mailbox (find more among community + projects) + +- ``akka-kernel`` – Akka microkernel for running a bare-bones mini application + server + +- ``akka-mailboxes-common`` – common infrastructure for implementing durable + mailboxes + +- ``akka-osgi`` – base bundle for using Akka in OSGi containers, containing the + ``akka-actor`` classes + +- ``akka-osgi-aries`` – Aries blueprint for provisioning actor systems + +- ``akka-remote`` – Remote Actors + +- ``akka-slf4j`` – SLF4J Logger (event bus listener) + +- ``akka-testkit`` – Toolkit for testing Actor systems + +- ``akka-transactor`` – Transactors - transactional actors, integrated with + Scala STM + +- ``akka-zeromq`` – ZeroMQ integration + +In addition to these stable modules there are several which are on their way +into the stable core but are still marked “experimental” at this point. This +does not mean that they do not function as intended, it primarily means that +their API has not yet solidified enough in order to be considered frozen. You +can help accelerating this process by giving feedback on these modules on our +mailing list. + +- ``akka-channels-experimental`` – Typed Channels on top of untyped Actors, + using Scala 2.10 macros + +- ``akka-cluster-experimental`` – Cluster membership management, leader + election, elastic routers. + +- ``akka-contrib`` – an assortment of contributions which may or may not be + moved into core modules, see :ref:`akka-contrib` for more details. The filename of the actual JAR is for example ``@jarName@`` (and analog for the other modules). diff --git a/akka-docs/rst/java/remoting.rst b/akka-docs/rst/java/remoting.rst index c7f50262be..f8788d9e95 100644 --- a/akka-docs/rst/java/remoting.rst +++ b/akka-docs/rst/java/remoting.rst @@ -362,13 +362,18 @@ It is possible to listen to events that occur in Akka Remote, and to subscribe/u you simply register as listener to the below described types in on the ``ActorSystem.eventStream``. .. note:: - To subscribe to any remote event, subscribe to :meth:``RemotingLifecycleEvent` - To subscribe to events related only to the lifecycle of associations, subscribe to :meth:`akka.remote.AssociationEvent` + + To subscribe to any remote event, subscribe to + :meth:`RemotingLifecycleEvent`. To subscribe to events related only to the + lifecycle of associations, subscribe to + :meth:`akka.remote.AssociationEvent`. .. note:: - The use of term "Association" instead of "Connection" reflects that the remoting subsystem may use - connectionless transports, but an association similar to transport layer connections is maintained between endpoints - by the Akka protocol. + + The use of term "Association" instead of "Connection" reflects that the + remoting subsystem may use connectionless transports, but an association + similar to transport layer connections is maintained between endpoints by + the Akka protocol. By default an event listener is registered which logs all of the events described below. This default was chosen to help setting up a system, but it is @@ -376,6 +381,7 @@ quite common to switch this logging off once that phase of the project is finished. .. note:: + In order to switch off the logging, set ``akka.remote.log-remote-lifecycle-events = off`` in your ``application.conf``. diff --git a/akka-docs/rst/scala/remoting.rst b/akka-docs/rst/scala/remoting.rst index 6b43516e21..9004ce6d6a 100644 --- a/akka-docs/rst/scala/remoting.rst +++ b/akka-docs/rst/scala/remoting.rst @@ -363,13 +363,18 @@ It is possible to listen to events that occur in Akka Remote, and to subscribe/u you simply register as listener to the below described types in on the ``ActorSystem.eventStream``. .. note:: - To subscribe to any remote event, subscribe to :meth:``RemotingLifecycleEvent` - To subscribe to events related only to the lifecycle of associations, subscribe to :meth:`akka.remote.AssociationEvent` + + To subscribe to any remote event, subscribe to + :meth:`RemotingLifecycleEvent`. To subscribe to events related only to + the lifecycle of associations, subscribe to + :meth:`akka.remote.AssociationEvent`. .. note:: - The use of term "Association" instead of "Connection" reflects that the remoting subsystem may use - connectionless transports, but an association similar to transport layer connections is maintained between endpoints - by the Akka protocol. + + The use of term "Association" instead of "Connection" reflects that the + remoting subsystem may use connectionless transports, but an association + similar to transport layer connections is maintained between endpoints by + the Akka protocol. By default an event listener is registered which logs all of the events described below. This default was chosen to help setting up a system, but it is @@ -377,6 +382,7 @@ quite common to switch this logging off once that phase of the project is finished. .. note:: + In order to switch off the logging, set ``akka.remote.log-remote-lifecycle-events = off`` in your ``application.conf``. diff --git a/akka-remote-tests/src/main/java/akka/remote/testconductor/TestConductorProtocol.java b/akka-multi-node-testkit/src/main/java/akka/remote/testconductor/TestConductorProtocol.java similarity index 100% rename from akka-remote-tests/src/main/java/akka/remote/testconductor/TestConductorProtocol.java rename to akka-multi-node-testkit/src/main/java/akka/remote/testconductor/TestConductorProtocol.java diff --git a/akka-remote-tests/src/main/protocol/TestConductorProtocol.proto b/akka-multi-node-testkit/src/main/protocol/TestConductorProtocol.proto similarity index 100% rename from akka-remote-tests/src/main/protocol/TestConductorProtocol.proto rename to akka-multi-node-testkit/src/main/protocol/TestConductorProtocol.proto diff --git a/akka-remote-tests/src/main/resources/reference.conf b/akka-multi-node-testkit/src/main/resources/reference.conf similarity index 100% rename from akka-remote-tests/src/main/resources/reference.conf rename to akka-multi-node-testkit/src/main/resources/reference.conf diff --git a/akka-remote-tests/src/main/scala/akka/remote/testconductor/Conductor.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testconductor/Conductor.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala diff --git a/akka-remote-tests/src/main/scala/akka/remote/testconductor/DataTypes.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testconductor/DataTypes.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala diff --git a/akka-remote-tests/src/main/scala/akka/remote/testconductor/Extension.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Extension.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testconductor/Extension.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Extension.scala diff --git a/akka-remote-tests/src/main/scala/akka/remote/testconductor/Player.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testconductor/Player.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala diff --git a/akka-remote-tests/src/main/scala/akka/remote/testconductor/RemoteConnection.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/RemoteConnection.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testconductor/RemoteConnection.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/RemoteConnection.scala diff --git a/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala similarity index 100% rename from akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala rename to akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index a9f0811825..c3f03b41b9 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -98,7 +98,9 @@ object AkkaBuild extends Build { id = "akka-dataflow", base = file("akka-dataflow"), dependencies = Seq(testkit % "test->test"), - settings = defaultSettings ++ scaladocSettings ++ OSGi.dataflow ++ cpsPlugin + settings = defaultSettings ++ scaladocSettings ++ OSGi.dataflow ++ cpsPlugin ++ Seq( + previousArtifact := akkaPreviousArtifact("akka-dataflow") + ) ) lazy val testkit = Project( @@ -118,6 +120,7 @@ object AkkaBuild extends Build { dependencies = Seq(testkit % "compile;test->test"), settings = defaultSettings ++ scaladocSettings ++ Seq( autoCompilerPlugins := true, + publishArtifact in Compile := false, libraryDependencies ++= Dependencies.actorTests ) ) @@ -129,15 +132,25 @@ object AkkaBuild extends Build { settings = defaultSettings ++ scaladocSettings ++ OSGi.remote ++ Seq( libraryDependencies ++= Dependencies.remote, // disable parallel tests - parallelExecution in Test := false + parallelExecution in Test := false, + previousArtifact := akkaPreviousArtifact("akka-remote") + ) + ) + + lazy val multiNodeTests = Project( + id = "akka-multi-node-testkit", + base = file("akka-multi-node-testkit"), + dependencies = Seq(remote, testkit), + settings = defaultSettings ++ scaladocSettings ++ Seq( + previousArtifact := akkaPreviousArtifact("akka-multi-node-testkit") ) ) lazy val remoteTests = Project( - id = "akka-remote-tests-experimental", + id = "akka-remote-tests", base = file("akka-remote-tests"), - dependencies = Seq(remote, actorTests % "test->test", testkit), - settings = defaultSettings ++ scaladocSettings ++ multiJvmSettings ++ experimentalSettings ++ Seq( + dependencies = Seq(actorTests % "test->test", multiNodeTests), + settings = defaultSettings ++ scaladocSettings ++ multiJvmSettings ++ Seq( libraryDependencies ++= Dependencies.remoteTests, // disable parallel tests parallelExecution in Test := false, @@ -145,7 +158,8 @@ object AkkaBuild extends Build { (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, - previousArtifact := akkaPreviousArtifact("akka-remote") + publishArtifact in Compile := false, + previousArtifact := akkaPreviousArtifact("akka-remote-tests") ) ) configs (MultiJvm) @@ -161,7 +175,7 @@ object AkkaBuild extends Build { (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, - previousArtifact := akkaPreviousArtifact("akka-remote") + previousArtifact := akkaPreviousArtifact("akka-cluster-experimental") ) ) configs (MultiJvm) @@ -170,7 +184,8 @@ object AkkaBuild extends Build { base = file("akka-slf4j"), dependencies = Seq(actor, testkit % "test->test"), settings = defaultSettings ++ scaladocSettings ++ OSGi.slf4j ++ Seq( - libraryDependencies ++= Dependencies.slf4j + libraryDependencies ++= Dependencies.slf4j, + previousArtifact := akkaPreviousArtifact("akka-slf4j") ) ) @@ -412,6 +427,7 @@ object AkkaBuild extends Build { enableOutput in generateEpub in Sphinx := true, unmanagedSourceDirectories in Test <<= sourceDirectory in Sphinx apply { _ ** "code" get }, libraryDependencies ++= Dependencies.docs, + publishArtifact in Compile := false, unmanagedSourceDirectories in ScalariformKeys.format in Test <<= unmanagedSourceDirectories in Test, testOptions += Tests.Argument(TestFrameworks.JUnit, "-v") ) @@ -451,6 +467,7 @@ object AkkaBuild extends Build { base = file("akka-channels-tests"), dependencies = Seq(channels, testkit % "compile;test->test"), settings = defaultSettings ++ experimentalSettings ++ Seq( + publishArtifact in Compile := false, libraryDependencies <+= (scalaVersion)("org.scala-lang" % "scala-compiler" % _) ) ) diff --git a/scripts/multi-node-log-replace.sh b/scripts/multi-node-log-replace.sh index 3bee844c2d..1f2afed49c 100755 --- a/scripts/multi-node-log-replace.sh +++ b/scripts/multi-node-log-replace.sh @@ -22,4 +22,4 @@ # check for an sbt command type -P sbt &> /dev/null || fail "sbt command not found" -sbt "project akka-remote-tests-experimental" "test:run-main akka.remote.testkit.LogRoleReplace $1 $2" +sbt "project akka-remote-tests" "test:run-main akka.remote.testkit.LogRoleReplace $1 $2"