diff --git a/akka-docs/rst/dev/multi-jvm-testing.rst b/akka-docs/rst/dev/multi-jvm-testing.rst index 7414622beb..ae0f692dd8 100644 --- a/akka-docs/rst/dev/multi-jvm-testing.rst +++ b/akka-docs/rst/dev/multi-jvm-testing.rst @@ -17,13 +17,13 @@ You can add it as a plugin by adding the following to your project/plugins.sbt: .. includecode:: ../../../project/plugins.sbt#sbt-multi-jvm -You can then add multi-JVM testing to ``project/Build.scala`` by including the ``MultiJvm`` +You can then add multi-JVM testing to ``build.sbt`` or ``project/Build.scala`` by including the ``MultiJvm`` settings and config. Please note that MultiJvm test sources are located in ``src/multi-jvm/...``, and not in ``src/test/...``. -Here is an example Build.scala file for sbt 0.13 that uses the MultiJvm plugin: +Here is an example ``build.sbt`` file for sbt 0.13 that uses the MultiJvm plugin: -.. includecode:: ../../../akka-samples/akka-sample-multi-node-scala/project/Build.scala +.. includecode:: ../../../akka-samples/akka-sample-multi-node-scala/build.sbt You can specify JVM options for the forked JVMs:: diff --git a/akka-samples/akka-sample-cluster-java/build.sbt b/akka-samples/akka-sample-cluster-java/build.sbt new file mode 100644 index 0000000000..966269aeaf --- /dev/null +++ b/akka-samples/akka-sample-cluster-java/build.sbt @@ -0,0 +1,44 @@ +import com.typesafe.sbt.SbtMultiJvm +import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm + +val akkaVersion = "2.3-SNAPSHOT" + +val project = Project( + id = "akka-sample-cluster-java", + base = file("."), + settings = Project.defaultSettings ++ SbtMultiJvm.multiJvmSettings ++ Seq( + name := "akka-sample-cluster-java", + version := "1.0", + scalaVersion := "2.10.3", + scalacOptions in Compile ++= Seq("-encoding", "UTF-8", "-target:jvm-1.6", "-deprecation", "-feature", "-unchecked", "-Xlog-reflective-calls", "-Xlint"), + javacOptions in Compile ++= Seq("-source", "1.6", "-target", "1.6", "-Xlint:unchecked", "-Xlint:deprecation"), + libraryDependencies ++= Seq( + "com.typesafe.akka" %% "akka-cluster" % akkaVersion, + "com.typesafe.akka" %% "akka-contrib" % akkaVersion, + "com.typesafe.akka" %% "akka-multi-node-testkit" % akkaVersion, + "org.scalatest" %% "scalatest" % "2.0" % "test", + "org.fusesource" % "sigar" % "1.6.4"), + javaOptions in run ++= Seq( + "-Djava.library.path=./sigar", + "-Xms128m", "-Xmx1024m"), + Keys.fork in run := true, + mainClass in (Compile, run) := Some("sample.cluster.simple.SimpleClusterApp"), + // make sure that MultiJvm test are compiled by the default test compilation + compile in MultiJvm <<= (compile in MultiJvm) triggeredBy (compile in Test), + // disable parallel tests + parallelExecution in Test := false, + // make sure that MultiJvm tests are executed by the default test target, + // and combine the results from ordinary test and multi-jvm tests + executeTests in Test <<= (executeTests in Test, executeTests in MultiJvm) map { + case (testResults, multiNodeResults) => + val overall = + if (testResults.overall.id < multiNodeResults.overall.id) + multiNodeResults.overall + else + testResults.overall + Tests.Output(overall, + testResults.events ++ multiNodeResults.events, + testResults.summaries ++ multiNodeResults.summaries) + } + ) +) configs (MultiJvm) \ No newline at end of file diff --git a/akka-samples/akka-sample-cluster-java/project/Build.scala b/akka-samples/akka-sample-cluster-java/project/Build.scala deleted file mode 100644 index 2508e85041..0000000000 --- a/akka-samples/akka-sample-cluster-java/project/Build.scala +++ /dev/null @@ -1,32 +0,0 @@ -import sbt._ -import sbt.Keys._ -import com.typesafe.sbt.SbtMultiJvm -import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm - -object AkkaSampleClusterBuild extends Build { - - val akkaVersion = "2.3-SNAPSHOT" - - lazy val akkaSampleCluster = Project( - id = "akka-sample-cluster-java", - base = file("."), - settings = Project.defaultSettings ++ SbtMultiJvm.multiJvmSettings ++ Seq( - name := "akka-sample-cluster-java", - version := "1.0", - scalaVersion := "2.10.3", - scalacOptions in Compile ++= Seq("-encoding", "UTF-8", "-target:jvm-1.6", "-deprecation", "-feature", "-unchecked", "-Xlog-reflective-calls", "-Xlint"), - javacOptions in Compile ++= Seq("-source", "1.6", "-target", "1.6", "-Xlint:unchecked", "-Xlint:deprecation"), - libraryDependencies ++= Seq( - "com.typesafe.akka" %% "akka-cluster" % akkaVersion, - "com.typesafe.akka" %% "akka-contrib" % akkaVersion, - "com.typesafe.akka" %% "akka-multi-node-testkit" % akkaVersion, - "org.scalatest" %% "scalatest" % "2.0" % "test", - "org.fusesource" % "sigar" % "1.6.4"), - javaOptions in run ++= Seq( - "-Djava.library.path=./sigar", - "-Xms128m", "-Xmx1024m"), - Keys.fork in run := true, - mainClass in (Compile, run) := Some("sample.cluster.simple.SimpleClusterApp") - ) - ) configs (MultiJvm) -} diff --git a/akka-samples/akka-sample-cluster-java/tutorial/index.html b/akka-samples/akka-sample-cluster-java/tutorial/index.html index 2f6650b23e..d1fd417b8b 100644 --- a/akka-samples/akka-sample-cluster-java/tutorial/index.html +++ b/akka-samples/akka-sample-cluster-java/tutorial/index.html @@ -476,6 +476,15 @@ interesting to run them in separate processes. Stop the application in the Press ctrl-c in the terminal window of the frontend to stop the factorial calculations.
+ ++Tests can be found in src/multi-jvm. +You can run them from the Test tab. +
+