2011-11-25 11:01:03 +01:00
|
|
|
|
/**
|
2014-02-02 19:05:45 -06:00
|
|
|
|
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
|
2011-11-25 11:01:03 +01:00
|
|
|
|
*/
|
|
|
|
|
|
|
2011-09-23 10:21:03 +02:00
|
|
|
|
package akka
|
|
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
import sbt._
|
2011-12-08 17:05:01 +13:00
|
|
|
|
import sbt.Keys._
|
2012-09-13 09:24:35 +02:00
|
|
|
|
import com.typesafe.sbt.SbtMultiJvm
|
2013-06-19 19:13:06 +12:00
|
|
|
|
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.{ MultiJvm, extraOptions, jvmOptions, scalatestOptions, multiNodeExecuteTests, multiNodeJavaName, multiNodeHostsFileName, multiNodeTargetDirName, multiTestOptions }
|
2012-10-05 02:42:09 +02:00
|
|
|
|
import com.typesafe.sbt.SbtScalariform
|
|
|
|
|
|
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
|
2013-11-29 11:31:38 +01:00
|
|
|
|
import com.typesafe.sbt.osgi.SbtOsgi.{ OsgiKeys, defaultOsgiSettings }
|
2012-05-25 10:02:35 +02:00
|
|
|
|
import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings
|
|
|
|
|
|
import com.typesafe.tools.mima.plugin.MimaKeys.previousArtifact
|
2013-08-27 16:17:22 +02:00
|
|
|
|
import com.typesafe.tools.mima.plugin.MimaKeys.reportBinaryIssues
|
2012-09-28 14:47:20 +12:00
|
|
|
|
import com.typesafe.sbt.SbtSite.site
|
2012-09-26 18:21:52 +12:00
|
|
|
|
import com.typesafe.sbt.site.SphinxSupport
|
2013-01-21 12:14:46 -08:00
|
|
|
|
import com.typesafe.sbt.site.SphinxSupport.{ enableOutput, generatePdf, generatedPdf, generateEpub, generatedEpub, sphinxInputs, sphinxPackages, Sphinx }
|
2012-09-26 18:21:52 +12:00
|
|
|
|
import com.typesafe.sbt.preprocess.Preprocess.{ preprocess, preprocessExts, preprocessVars, simplePreprocess }
|
2011-08-04 16:49:05 +12:00
|
|
|
|
import java.lang.Boolean.getBoolean
|
2013-01-10 11:28:08 +01:00
|
|
|
|
import java.io.{PrintWriter, InputStreamReader, FileInputStream, File}
|
2012-12-18 12:10:59 +01:00
|
|
|
|
import java.nio.charset.Charset
|
|
|
|
|
|
import java.util.Properties
|
2013-01-30 14:46:23 +01:00
|
|
|
|
import annotation.tailrec
|
2013-03-18 11:44:54 +01:00
|
|
|
|
import Unidoc.{ JavaDoc, javadocSettings, junidocSources, sunidoc, unidocExclude }
|
2013-08-21 09:22:46 +02:00
|
|
|
|
import com.typesafe.sbt.S3Plugin.{ S3, s3Settings }
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
|
|
|
|
|
object AkkaBuild extends Build {
|
2011-07-11 15:38:22 -06:00
|
|
|
|
System.setProperty("akka.mode", "test") // Is there better place for this?
|
2012-12-18 12:10:59 +01:00
|
|
|
|
|
|
|
|
|
|
// Load system properties from a file to make configuration from Jenkins easier
|
|
|
|
|
|
loadSystemProperties("project/akka-build.properties")
|
|
|
|
|
|
|
2012-07-27 13:15:51 +02:00
|
|
|
|
val enableMiMa = false
|
2012-06-28 15:33:49 +02:00
|
|
|
|
|
2014-02-02 20:35:47 +01:00
|
|
|
|
val requestedScalaVersion = System.getProperty("akka.scalaVersion", "2.10.3")
|
2013-06-08 01:42:50 +02:00
|
|
|
|
|
2011-07-08 18:01:19 +12:00
|
|
|
|
lazy val buildSettings = Seq(
|
2011-10-06 15:44:15 +02:00
|
|
|
|
organization := "com.typesafe.akka",
|
2013-07-09 10:59:36 +02:00
|
|
|
|
version := "2.3-SNAPSHOT",
|
2013-06-08 01:42:50 +02:00
|
|
|
|
scalaVersion := requestedScalaVersion,
|
2013-12-03 09:18:26 +01:00
|
|
|
|
scalaBinaryVersion := System.getProperty("akka.scalaBinaryVersion", if (scalaVersion.value contains "-") scalaVersion.value else scalaBinaryVersion.value)
|
2011-07-08 18:01:19 +12:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
|
|
|
|
|
lazy val akka = Project(
|
|
|
|
|
|
id = "akka",
|
|
|
|
|
|
base = file("."),
|
2012-09-26 18:21:52 +12:00
|
|
|
|
settings = parentSettings ++ Release.settings ++ Unidoc.settings ++ Publish.versionSettings ++
|
2013-09-13 11:47:32 +02:00
|
|
|
|
SphinxSupport.settings ++ Dist.settings ++ s3Settings ++ mimaSettings ++ unidocScaladocSettings ++
|
|
|
|
|
|
Protobuf.settings ++ inConfig(JavaDoc)(Defaults.configSettings) ++ Seq(
|
2012-02-26 19:57:05 +01:00
|
|
|
|
testMailbox in GlobalScope := System.getProperty("akka.testMailbox", "false").toBoolean,
|
2012-01-01 11:33:20 +01:00
|
|
|
|
parallelExecution in GlobalScope := System.getProperty("akka.parallelExecution", "false").toBoolean,
|
2011-12-09 21:55:49 +13:00
|
|
|
|
Publish.defaultPublishTo in ThisBuild <<= crossTarget / "repository",
|
2014-01-16 20:35:02 +01:00
|
|
|
|
unidocExclude := Seq(samples.id, remoteTests.id),
|
2013-03-06 09:44:34 +01:00
|
|
|
|
sources in JavaDoc <<= junidocSources,
|
|
|
|
|
|
javacOptions in JavaDoc := Seq(),
|
|
|
|
|
|
artifactName in packageDoc in JavaDoc := ((sv, mod, art) => "" + mod.name + "_" + sv.binary + "-" + mod.revision + "-javadoc.jar"),
|
|
|
|
|
|
packageDoc in Compile <<= packageDoc in JavaDoc,
|
2014-01-22 12:48:10 +01:00
|
|
|
|
Dist.distExclude := Seq(actorTests.id, docs.id, samples.id, osgi.id),
|
2012-09-26 18:21:52 +12:00
|
|
|
|
// generate online version of docs
|
|
|
|
|
|
sphinxInputs in Sphinx <<= sphinxInputs in Sphinx in LocalProject(docs.id) map { inputs => inputs.copy(tags = inputs.tags :+ "online") },
|
|
|
|
|
|
// don't regenerate the pdf, just reuse the akka-docs version
|
2013-01-24 22:39:55 +01:00
|
|
|
|
generatedPdf in Sphinx <<= generatedPdf in Sphinx in LocalProject(docs.id) map identity,
|
2013-08-21 09:22:46 +02:00
|
|
|
|
generatedEpub in Sphinx <<= generatedEpub in Sphinx in LocalProject(docs.id) map identity,
|
|
|
|
|
|
|
|
|
|
|
|
S3.host in S3.upload := "downloads.typesafe.com.s3.amazonaws.com",
|
|
|
|
|
|
S3.progress in S3.upload := true,
|
|
|
|
|
|
mappings in S3.upload <<= (Release.releaseDirectory, version) map { (d, v) =>
|
2013-12-04 12:12:38 +01:00
|
|
|
|
val downloads = d / "downloads"
|
|
|
|
|
|
val archivesPathFinder = (downloads * ("*" + v + ".zip")) +++ (downloads * ("*" + v + ".tgz"))
|
|
|
|
|
|
archivesPathFinder.get.map(file => (file -> ("akka/" + file.getName)))
|
2014-01-21 12:47:43 +01:00
|
|
|
|
},
|
|
|
|
|
|
// add reportBinaryIssues to validatePullRequest on minor version maintenance branch
|
|
|
|
|
|
validatePullRequest <<= (Unidoc.unidoc, SphinxSupport.generate in Sphinx in docs) map { (_, _) => }
|
2011-07-08 10:20:10 +12:00
|
|
|
|
),
|
2013-02-22 14:52:40 +01:00
|
|
|
|
aggregate = Seq(actor, testkit, actorTests, dataflow, remote, remoteTests, camel, cluster, slf4j, agent, transactor,
|
2014-01-22 12:48:10 +01:00
|
|
|
|
persistence, mailboxes, zeroMQ, kernel, osgi, docs, contrib, samples, multiNodeTestkit)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-12-03 09:18:26 +01:00
|
|
|
|
lazy val akkaScalaNightly = Project(
|
|
|
|
|
|
id = "akka-scala-nightly",
|
|
|
|
|
|
base = file("akka-scala-nightly"),
|
|
|
|
|
|
// remove dependencies that we have to build ourselves (Scala STM, ZeroMQ Scala Bindings)
|
2014-02-14 12:06:41 +01:00
|
|
|
|
// samples and dataflow don't work with dbuild right now
|
|
|
|
|
|
aggregate = Seq(actor, testkit, actorTests, remote, remoteTests, camel, cluster, slf4j,
|
|
|
|
|
|
persistence, mailboxes, kernel, osgi, contrib, multiNodeTestkit)
|
2013-12-03 09:18:26 +01:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-02-14 15:49:21 +01:00
|
|
|
|
// this detached pseudo-project is used for running the tests against a different Scala version than the one used for compilation
|
|
|
|
|
|
// usage:
|
|
|
|
|
|
// all-tests/test (or test-only)
|
|
|
|
|
|
// customizing (on the SBT command line):
|
|
|
|
|
|
// set scalaVersion in allTests := "2.11.0"
|
2013-06-19 19:13:06 +12:00
|
|
|
|
lazy val multiJvmProjects = Seq(remoteTests, cluster)
|
2013-02-14 15:49:21 +01:00
|
|
|
|
lazy val allTests = Project(
|
|
|
|
|
|
id = "all-tests",
|
|
|
|
|
|
base = file("all-tests"),
|
2013-06-19 19:13:06 +12:00
|
|
|
|
dependencies = (
|
|
|
|
|
|
((akka.aggregate: Seq[ProjectReference]) map (_ % "test->test")) ++
|
|
|
|
|
|
(multiJvmProjects map (_ % "multi-jvm->multi-jvm"))
|
|
|
|
|
|
),
|
|
|
|
|
|
settings = defaultSettings ++ multiJvmSettings ++ Seq(
|
2013-06-08 01:42:50 +02:00
|
|
|
|
scalaVersion := requestedScalaVersion,
|
2013-02-14 15:49:21 +01:00
|
|
|
|
publishArtifact := false,
|
|
|
|
|
|
definedTests in Test := Nil
|
2013-02-14 16:04:36 +01:00
|
|
|
|
) ++ (
|
|
|
|
|
|
(akka.aggregate: Seq[ProjectReference])
|
|
|
|
|
|
filterNot {
|
|
|
|
|
|
case LocalProject(name) => name contains "slf4j"
|
|
|
|
|
|
case _ => false
|
|
|
|
|
|
} map {
|
|
|
|
|
|
pr => definedTests in Test <++= definedTests in (pr, Test)
|
|
|
|
|
|
}
|
2013-06-19 19:13:06 +12:00
|
|
|
|
) ++ (
|
|
|
|
|
|
multiJvmProjects map {
|
|
|
|
|
|
pr => definedTests in MultiJvm <++= definedTests in (pr, MultiJvm)
|
|
|
|
|
|
}
|
|
|
|
|
|
) ++ Seq(
|
|
|
|
|
|
scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions
|
|
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val atmos = Project(
|
|
|
|
|
|
id = "atmos",
|
|
|
|
|
|
base = file("atmos"),
|
|
|
|
|
|
dependencies = Seq(allTests % "test->test;multi-jvm->multi-jvm"),
|
|
|
|
|
|
settings = defaultSettings ++ multiJvmSettings ++ Seq(
|
|
|
|
|
|
fork in Test := true,
|
|
|
|
|
|
definedTests in Test <<= definedTests in allTests in Test,
|
|
|
|
|
|
libraryDependencies += "org.aspectj" % "aspectjweaver" % "1.7.2",
|
|
|
|
|
|
libraryDependencies += "com.typesafe.atmos" % "trace-akka-2.2.0-RC1_2.10" % "1.2.0-M5" excludeAll(ExclusionRule(organization = "com.typesafe.akka")),
|
|
|
|
|
|
resolvers += "Typesafe Repo" at "http://repo.typesafe.com/typesafe/releases/",
|
|
|
|
|
|
javaOptions in Test <++= (update) map { (u) =>
|
|
|
|
|
|
val f = u.matching(configurationFilter("compile") && moduleFilter(name = "aspectjweaver")).head
|
|
|
|
|
|
Seq("-javaagent:" + f.getAbsolutePath, "-Dorg.aspectj.tracing.factory=default")
|
|
|
|
|
|
},
|
|
|
|
|
|
definedTests in MultiJvm <++= definedTests in (allTests, MultiJvm),
|
|
|
|
|
|
scalatestOptions in MultiJvm <<= scalatestOptions in (allTests, MultiJvm),
|
|
|
|
|
|
multiTestOptions in MultiJvm <<= (multiTestOptions in MultiJvm, javaOptions in Test) map { (multiOptions, testOptions) =>
|
|
|
|
|
|
multiOptions.copy(jvm = multiOptions.jvm ++ testOptions)
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
2013-02-14 15:49:21 +01:00
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
lazy val actor = Project(
|
|
|
|
|
|
id = "akka-actor",
|
|
|
|
|
|
base = file("akka-actor"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.actor ++ Seq(
|
2011-10-06 15:44:15 +02:00
|
|
|
|
// to fix scaladoc generation
|
2012-05-29 02:13:25 +02:00
|
|
|
|
fullClasspath in doc in Compile <<= fullClasspath in Compile,
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.actor,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-actor")
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
2013-03-05 19:10:45 +01:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2013-03-04 23:40:29 +01:00
|
|
|
|
val cpsPlugin = Seq(
|
2014-01-31 11:14:13 +01:00
|
|
|
|
libraryDependencies <++= scalaVersion { v =>
|
|
|
|
|
|
if (v.startsWith("2.10.")) Seq(compilerPlugin("org.scala-lang.plugins" % "continuations" % v))
|
|
|
|
|
|
else Seq(
|
|
|
|
|
|
compilerPlugin("org.scala-lang.plugins" %% "scala-continuations-plugin" % Dependencies.Versions.scalaContinuationsVersion),
|
|
|
|
|
|
"org.scala-lang.plugins" %% "scala-continuations-library" % Dependencies.Versions.scalaContinuationsVersion)
|
|
|
|
|
|
},
|
2012-09-24 22:37:06 +02:00
|
|
|
|
scalacOptions += "-P:continuations:enable"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2012-08-07 14:30:16 +02:00
|
|
|
|
lazy val dataflow = Project(
|
|
|
|
|
|
id = "akka-dataflow",
|
|
|
|
|
|
base = file("akka-dataflow"),
|
2013-02-10 16:25:01 -05:00
|
|
|
|
dependencies = Seq(testkit % "test->test"),
|
2014-01-21 13:51:29 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettingsNoVerificationOfDiagrams ++ OSGi.dataflow ++ cpsPlugin ++ Seq(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-dataflow")
|
|
|
|
|
|
)
|
2012-08-07 14:30:16 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
lazy val testkit = Project(
|
|
|
|
|
|
id = "akka-testkit",
|
|
|
|
|
|
base = file("akka-testkit"),
|
|
|
|
|
|
dependencies = Seq(actor),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.testkit ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.testkit,
|
2012-07-04 11:30:02 +02:00
|
|
|
|
initialCommands += "import akka.testkit._",
|
2012-05-25 10:02:35 +02:00
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-testkit")
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val actorTests = Project(
|
|
|
|
|
|
id = "akka-actor-tests",
|
|
|
|
|
|
base = file("akka-actor-tests"),
|
2011-10-10 15:45:55 +02:00
|
|
|
|
dependencies = Seq(testkit % "compile;test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ Seq(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
publishArtifact in Compile := false,
|
2013-05-28 10:39:38 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.actorTests,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-a"),
|
|
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-09-09 13:46:36 +02:00
|
|
|
|
lazy val remote = Project(
|
|
|
|
|
|
id = "akka-remote",
|
|
|
|
|
|
base = file("akka-remote"),
|
2011-12-14 12:39:27 +01:00
|
|
|
|
dependencies = Seq(actor, actorTests % "test->test", testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.remote ++ Seq(
|
2012-01-16 14:31:41 +01:00
|
|
|
|
libraryDependencies ++= Dependencies.remote,
|
2011-12-19 16:30:15 +01:00
|
|
|
|
// disable parallel tests
|
2013-02-10 16:04:59 -05:00
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-remote")
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2013-02-22 14:52:40 +01:00
|
|
|
|
lazy val multiNodeTestkit = Project(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
id = "akka-multi-node-testkit",
|
|
|
|
|
|
base = file("akka-multi-node-testkit"),
|
|
|
|
|
|
dependencies = Seq(remote, testkit),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ Seq(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-multi-node-testkit")
|
2011-09-09 13:46:36 +02:00
|
|
|
|
)
|
2012-05-29 08:28:54 +02:00
|
|
|
|
)
|
2011-09-09 13:46:36 +02:00
|
|
|
|
|
2012-05-10 10:24:05 +02:00
|
|
|
|
lazy val remoteTests = Project(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
id = "akka-remote-tests",
|
2012-05-10 10:24:05 +02:00
|
|
|
|
base = file("akka-remote-tests"),
|
2013-02-22 14:52:40 +01:00
|
|
|
|
dependencies = Seq(actorTests % "test->test", multiNodeTestkit),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ multiJvmSettings ++ Seq(
|
2012-09-06 15:35:59 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.remoteTests,
|
2012-05-10 10:24:05 +02:00
|
|
|
|
// disable parallel tests
|
|
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src =>
|
|
|
|
|
|
(name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq
|
|
|
|
|
|
},
|
2012-05-27 19:20:30 +02:00
|
|
|
|
scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions,
|
2013-02-10 16:04:59 -05:00
|
|
|
|
publishArtifact in Compile := false,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2012-05-10 10:24:05 +02:00
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
|
|
|
|
|
|
2012-02-06 17:29:17 +01:00
|
|
|
|
lazy val cluster = Project(
|
2013-05-23 15:18:00 +02:00
|
|
|
|
id = "akka-cluster",
|
2012-01-31 13:33:04 +01:00
|
|
|
|
base = file("akka-cluster"),
|
2012-09-12 15:12:13 +02:00
|
|
|
|
dependencies = Seq(remote, remoteTests % "test->test" , testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ multiJvmSettings ++ OSGi.cluster ++ Seq(
|
2012-01-31 13:33:04 +01:00
|
|
|
|
libraryDependencies ++= Dependencies.cluster,
|
|
|
|
|
|
// disable parallel tests
|
|
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src =>
|
|
|
|
|
|
(name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq
|
|
|
|
|
|
},
|
2012-05-27 19:20:30 +02:00
|
|
|
|
scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions,
|
2013-05-23 15:18:00 +02:00
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-cluster")
|
2012-01-31 13:33:04 +01:00
|
|
|
|
)
|
2013-09-13 11:47:32 +02:00
|
|
|
|
) configs (MultiJvm)
|
2012-01-31 13:33:04 +01:00
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
lazy val slf4j = Project(
|
|
|
|
|
|
id = "akka-slf4j",
|
|
|
|
|
|
base = file("akka-slf4j"),
|
2011-10-12 11:34:35 +02:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.slf4j ++ Seq(
|
2013-02-10 16:04:59 -05:00
|
|
|
|
libraryDependencies ++= Dependencies.slf4j,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-slf4j")
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-12-19 15:46:06 +13:00
|
|
|
|
lazy val agent = Project(
|
|
|
|
|
|
id = "akka-agent",
|
|
|
|
|
|
base = file("akka-agent"),
|
|
|
|
|
|
dependencies = Seq(actor, testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.agent ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.agent,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-agent")
|
2011-12-19 15:46:06 +13:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-12-21 13:40:32 +13:00
|
|
|
|
lazy val transactor = Project(
|
|
|
|
|
|
id = "akka-transactor",
|
|
|
|
|
|
base = file("akka-transactor"),
|
|
|
|
|
|
dependencies = Seq(actor, testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.transactor ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.transactor,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-transactor")
|
2011-12-21 13:40:32 +13:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2013-09-14 14:19:18 +02:00
|
|
|
|
lazy val persistence = Project(
|
|
|
|
|
|
id = "akka-persistence-experimental",
|
|
|
|
|
|
base = file("akka-persistence"),
|
2013-10-09 13:11:53 +02:00
|
|
|
|
dependencies = Seq(actor, remote % "test->test", testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ experimentalSettings ++ javadocSettings ++ OSGi.persistence ++ Seq(
|
2013-11-12 09:02:02 +01:00
|
|
|
|
fork in Test := true,
|
2013-12-23 13:05:18 +01:00
|
|
|
|
javaOptions in Test := defaultMultiJvmOptions,
|
2013-09-14 14:19:18 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.persistence,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-persistence")
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2012-02-23 17:13:40 +01:00
|
|
|
|
val testMailbox = SettingKey[Boolean]("test-mailbox")
|
|
|
|
|
|
|
2011-11-01 09:45:57 +01:00
|
|
|
|
lazy val mailboxes = Project(
|
|
|
|
|
|
id = "akka-durable-mailboxes",
|
|
|
|
|
|
base = file("akka-durable-mailboxes"),
|
|
|
|
|
|
settings = parentSettings,
|
2012-05-08 15:07:05 +02:00
|
|
|
|
aggregate = Seq(mailboxesCommon, fileMailbox)
|
2011-11-01 09:45:57 +01:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2011-11-01 09:45:57 +01:00
|
|
|
|
lazy val mailboxesCommon = Project(
|
|
|
|
|
|
id = "akka-mailboxes-common",
|
|
|
|
|
|
base = file("akka-durable-mailboxes/akka-mailboxes-common"),
|
|
|
|
|
|
dependencies = Seq(remote, testkit % "compile;test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.mailboxesCommon ++ Seq(
|
2012-05-15 16:01:32 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.mailboxes,
|
2012-05-25 10:02:35 +02:00
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-mailboxes-common"),
|
2012-05-15 16:01:32 +02:00
|
|
|
|
publishArtifact in Test := true
|
2011-11-01 09:45:57 +01:00
|
|
|
|
)
|
|
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2011-11-01 09:45:57 +01:00
|
|
|
|
lazy val fileMailbox = Project(
|
|
|
|
|
|
id = "akka-file-mailbox",
|
|
|
|
|
|
base = file("akka-durable-mailboxes/akka-file-mailbox"),
|
|
|
|
|
|
dependencies = Seq(mailboxesCommon % "compile;test->test", testkit % "test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.fileMailbox ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.fileMailbox,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-file-mailbox")
|
2011-11-01 09:45:57 +01:00
|
|
|
|
)
|
|
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-01-14 03:16:39 +01:00
|
|
|
|
lazy val zeroMQ = Project(
|
|
|
|
|
|
id = "akka-zeromq",
|
|
|
|
|
|
base = file("akka-zeromq"),
|
|
|
|
|
|
dependencies = Seq(actor, testkit % "test;test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.zeroMQ ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.zeroMQ,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-zeromq")
|
2012-01-14 03:16:39 +01:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-12-14 16:19:16 +13:00
|
|
|
|
lazy val kernel = Project(
|
|
|
|
|
|
id = "akka-kernel",
|
|
|
|
|
|
base = file("akka-kernel"),
|
2011-12-14 17:15:06 +13:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test"),
|
2014-01-21 13:51:29 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettingsNoVerificationOfDiagrams ++ javadocSettings ++ Seq(
|
2012-05-25 10:02:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.kernel,
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-kernel")
|
2011-12-14 16:19:16 +13:00
|
|
|
|
)
|
|
|
|
|
|
)
|
2012-04-24 10:19:36 +02:00
|
|
|
|
|
2012-01-19 14:38:44 +00:00
|
|
|
|
lazy val camel = Project(
|
2013-05-08 09:42:25 +02:00
|
|
|
|
id = "akka-camel",
|
|
|
|
|
|
base = file("akka-camel"),
|
|
|
|
|
|
dependencies = Seq(actor, slf4j, testkit % "test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.camel ++ Seq(
|
2013-05-08 09:42:25 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.camel,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-a"),
|
|
|
|
|
|
previousArtifact := akkaPreviousArtifact("akka-camel")
|
2013-05-08 09:42:25 +02:00
|
|
|
|
)
|
2012-01-19 14:38:44 +00:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-05-29 12:41:09 +02:00
|
|
|
|
lazy val osgi = Project(
|
|
|
|
|
|
id = "akka-osgi",
|
|
|
|
|
|
base = file("akka-osgi"),
|
|
|
|
|
|
dependencies = Seq(actor),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ OSGi.osgi ++ Seq(
|
2012-07-03 11:43:59 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.osgi,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2012-06-26 22:07:57 +02:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
lazy val samples = Project(
|
|
|
|
|
|
id = "akka-samples",
|
|
|
|
|
|
base = file("akka-samples"),
|
2013-12-04 12:12:38 +01:00
|
|
|
|
settings = parentSettings ++ ActivatorDist.settings,
|
2013-11-29 16:27:23 +01:00
|
|
|
|
aggregate = Seq(camelSampleJava, camelSampleScala, mainSampleJava, mainSampleScala,
|
|
|
|
|
|
remoteSampleJava, remoteSampleScala, clusterSampleJava, clusterSampleScala,
|
2014-02-03 16:08:19 +01:00
|
|
|
|
fsmSampleScala, persistenceSampleJava, persistenceSampleScala,
|
2014-02-11 13:28:22 +01:00
|
|
|
|
multiNodeSampleScala, helloKernelSample, osgiDiningHakkersSample)
|
2012-08-09 19:30:32 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-11-15 16:28:14 +01:00
|
|
|
|
lazy val camelSampleJava = Project(
|
|
|
|
|
|
id = "akka-sample-camel-java",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-camel-java"),
|
|
|
|
|
|
dependencies = Seq(actor, camel),
|
|
|
|
|
|
settings = sampleSettings ++ Seq(libraryDependencies ++= Dependencies.camelSample)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val camelSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-camel-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-camel-scala"),
|
2012-08-09 19:30:32 +02:00
|
|
|
|
dependencies = Seq(actor, camel),
|
2012-09-20 21:50:35 +02:00
|
|
|
|
settings = sampleSettings ++ Seq(libraryDependencies ++= Dependencies.camelSample)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
|
2014-02-10 17:23:19 +01:00
|
|
|
|
lazy val fsmSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-fsm-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-fsm-scala"),
|
2011-07-04 19:16:43 +12:00
|
|
|
|
dependencies = Seq(actor),
|
2012-09-20 21:50:35 +02:00
|
|
|
|
settings = sampleSettings
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
2011-12-08 17:05:01 +13:00
|
|
|
|
|
2013-11-15 11:53:21 +01:00
|
|
|
|
lazy val mainSampleJava = Project(
|
|
|
|
|
|
id = "akka-sample-main-java",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-main-java"),
|
|
|
|
|
|
dependencies = Seq(actor),
|
|
|
|
|
|
settings = sampleSettings
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val mainSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-main-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-main-scala"),
|
2011-11-25 14:49:09 +01:00
|
|
|
|
dependencies = Seq(actor),
|
2012-09-20 21:50:35 +02:00
|
|
|
|
settings = sampleSettings
|
2011-11-25 14:49:09 +01:00
|
|
|
|
)
|
2011-12-08 17:05:01 +13:00
|
|
|
|
|
2011-12-14 16:19:16 +13:00
|
|
|
|
lazy val helloKernelSample = Project(
|
|
|
|
|
|
id = "akka-sample-hello-kernel",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-hello-kernel"),
|
|
|
|
|
|
dependencies = Seq(kernel),
|
2012-09-20 21:50:35 +02:00
|
|
|
|
settings = sampleSettings
|
2011-12-14 16:19:16 +13:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-11-26 09:17:50 +01:00
|
|
|
|
lazy val remoteSampleJava = Project(
|
|
|
|
|
|
id = "akka-sample-remote-java",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-remote-java"),
|
|
|
|
|
|
dependencies = Seq(actor, remote),
|
|
|
|
|
|
settings = sampleSettings
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val remoteSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-remote-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-remote-scala"),
|
|
|
|
|
|
dependencies = Seq(actor, remote),
|
2012-09-20 21:50:35 +02:00
|
|
|
|
settings = sampleSettings
|
2011-12-22 15:12:41 +01:00
|
|
|
|
)
|
|
|
|
|
|
|
2014-02-03 16:08:19 +01:00
|
|
|
|
lazy val persistenceSampleJava = Project(
|
|
|
|
|
|
id = "akka-sample-persistence-java",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-persistence-java"),
|
|
|
|
|
|
dependencies = Seq(actor, persistence),
|
|
|
|
|
|
settings = sampleSettings
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val persistenceSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-persistence-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-persistence-scala"),
|
2013-09-14 14:19:18 +02:00
|
|
|
|
dependencies = Seq(actor, persistence),
|
|
|
|
|
|
settings = sampleSettings
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2013-11-29 16:27:23 +01:00
|
|
|
|
lazy val clusterSampleJava = Project(
|
|
|
|
|
|
id = "akka-sample-cluster-java",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-cluster-java"),
|
|
|
|
|
|
dependencies = Seq(cluster, contrib, remoteTests % "test", testkit % "test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = multiJvmSettings ++ sampleSettings ++ Seq(
|
2013-11-29 16:27:23 +01:00
|
|
|
|
libraryDependencies ++= Dependencies.clusterSample,
|
|
|
|
|
|
javaOptions in run ++= Seq(
|
|
|
|
|
|
"-Djava.library.path=./sigar",
|
|
|
|
|
|
"-Xms128m", "-Xmx1024m"),
|
|
|
|
|
|
Keys.fork in run := true,
|
|
|
|
|
|
// disable parallel tests
|
|
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src =>
|
|
|
|
|
|
(name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val clusterSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-cluster-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-cluster-scala"),
|
2013-01-14 14:09:53 +01:00
|
|
|
|
dependencies = Seq(cluster, contrib, remoteTests % "test", testkit % "test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = multiJvmSettings ++ sampleSettings ++ Seq(
|
2012-09-21 11:47:50 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.clusterSample,
|
2012-11-08 18:49:54 +01:00
|
|
|
|
javaOptions in run ++= Seq(
|
|
|
|
|
|
"-Djava.library.path=./sigar",
|
|
|
|
|
|
"-Xms128m", "-Xmx1024m"),
|
|
|
|
|
|
Keys.fork in run := true,
|
2012-09-13 10:54:14 +02:00
|
|
|
|
// disable parallel tests
|
|
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src =>
|
|
|
|
|
|
(name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq
|
2012-09-27 15:57:46 +02:00
|
|
|
|
}
|
2012-09-20 21:50:35 +02:00
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
2013-12-03 16:34:26 +01:00
|
|
|
|
|
2014-02-11 13:28:22 +01:00
|
|
|
|
lazy val multiNodeSampleScala = Project(
|
|
|
|
|
|
id = "akka-sample-multi-node-scala",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-multi-node-scala"),
|
2013-02-22 14:52:40 +01:00
|
|
|
|
dependencies = Seq(multiNodeTestkit % "test", testkit % "test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = multiJvmSettings ++ sampleSettings ++ experimentalSettings ++ Seq(
|
2012-09-20 21:50:35 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.multiNodeSample,
|
|
|
|
|
|
// disable parallel tests
|
|
|
|
|
|
parallelExecution in Test := false,
|
|
|
|
|
|
extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src =>
|
|
|
|
|
|
(name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq
|
2012-09-27 15:57:46 +02:00
|
|
|
|
}
|
2012-09-13 10:54:14 +02:00
|
|
|
|
)
|
|
|
|
|
|
) configs (MultiJvm)
|
2012-08-16 14:48:15 +02:00
|
|
|
|
|
2013-02-06 15:54:58 +01:00
|
|
|
|
lazy val osgiDiningHakkersSample = Project(id = "akka-sample-osgi-dining-hakkers",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = parentSettings ++ osgiSampleSettings
|
2013-04-11 08:39:09 +02:00
|
|
|
|
) aggregate(osgiDiningHakkersSampleApi, osgiDiningHakkersSampleCommand, osgiDiningHakkersSampleCore,
|
2013-09-13 11:47:32 +02:00
|
|
|
|
osgiDiningHakkersSampleIntegrationTest, uncommons)
|
2013-02-06 15:54:58 +01:00
|
|
|
|
|
|
|
|
|
|
lazy val osgiDiningHakkersSampleApi = Project(id = "akka-sample-osgi-dining-hakkers-api",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers/api"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ OSGi.osgiDiningHakkersSampleApi
|
2013-02-06 15:54:58 +01:00
|
|
|
|
)dependsOn(actor)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val osgiDiningHakkersSampleCommand = Project(id = "akka-sample-osgi-dining-hakkers-command",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers/command"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ OSGi.osgiDiningHakkersSampleCommand ++ Seq(
|
|
|
|
|
|
libraryDependencies ++= Dependencies.osgiDiningHakkersSampleCommand
|
2013-02-06 15:54:58 +01:00
|
|
|
|
)
|
|
|
|
|
|
) dependsOn (osgiDiningHakkersSampleApi, actor)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val osgiDiningHakkersSampleCore = Project(id = "akka-sample-osgi-dining-hakkers-core",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers/core"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ OSGi.osgiDiningHakkersSampleCore ++ Seq(
|
|
|
|
|
|
libraryDependencies ++= Dependencies.osgiDiningHakkersSampleCore
|
|
|
|
|
|
)
|
|
|
|
|
|
) dependsOn (osgiDiningHakkersSampleApi, actor, remote, cluster, persistence, osgi)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val osgiDiningHakkersSampleTest = Project(id = "akka-sample-osgi-dining-hakkers-test",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers/integration-test"),
|
|
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ OSGi.osgiDiningHakkersSampleCore ++ Seq(
|
|
|
|
|
|
libraryDependencies ++= Dependencies.osgiDiningHakkersSampleTest
|
2013-02-06 15:54:58 +01:00
|
|
|
|
)
|
2014-01-22 12:48:10 +01:00
|
|
|
|
) dependsOn (osgiDiningHakkersSampleCommand, osgiDiningHakkersSampleCore, testkit )
|
2013-02-06 15:54:58 +01:00
|
|
|
|
|
|
|
|
|
|
//TODO to remove it as soon as the uncommons gets OSGified, see ticket #2990
|
|
|
|
|
|
lazy val uncommons = Project(id = "akka-sample-osgi-dining-hakkers-uncommons",
|
2013-05-29 16:47:20 +02:00
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers/uncommons"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ OSGi.osgiDiningHakkersSampleUncommons ++ Seq(
|
2013-02-06 15:54:58 +01:00
|
|
|
|
libraryDependencies ++= Dependencies.uncommons,
|
2013-05-29 16:47:20 +02:00
|
|
|
|
version := "1.2.0"
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2013-04-11 08:39:09 +02:00
|
|
|
|
def executeMvnCommands(failureMessage: String, commands: String*) = {
|
2014-01-22 12:48:10 +01:00
|
|
|
|
if ({List("sh", "-c", commands.mkString("cd akka-samples/akka-sample-osgi-dining-hakkers; mvn ", " ", "")) !} != 0)
|
2013-04-11 08:39:09 +02:00
|
|
|
|
throw new Exception(failureMessage)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
lazy val osgiDiningHakkersSampleIntegrationTest = Project(id = "akka-sample-osgi-dining-hakkers-integration",
|
|
|
|
|
|
base = file("akka-samples/akka-sample-osgi-dining-hakkers-integration"),
|
2014-01-22 12:48:10 +01:00
|
|
|
|
settings = sampleSettings ++ osgiSampleSettings ++ (
|
|
|
|
|
|
if (System.getProperty("akka.osgi.sample.test", "true").toBoolean) Seq(
|
2013-04-11 08:39:09 +02:00
|
|
|
|
test in Test ~= { x => {
|
|
|
|
|
|
executeMvnCommands("Osgi sample Dining hakkers test failed", "clean", "install")
|
2014-01-22 12:48:10 +01:00
|
|
|
|
}},
|
|
|
|
|
|
// force publication of artifacts to local maven repo
|
|
|
|
|
|
compile in Compile <<=
|
|
|
|
|
|
(publishM2 in actor, publishM2 in testkit, publishM2 in remote, publishM2 in cluster, publishM2 in osgi,
|
|
|
|
|
|
publishM2 in slf4j, publishM2 in persistence, compile in Compile) map
|
|
|
|
|
|
((_, _, _, _, _, _, _, c) => c))
|
2013-04-11 08:39:09 +02:00
|
|
|
|
else Seq.empty
|
|
|
|
|
|
)
|
2013-09-13 11:47:32 +02:00
|
|
|
|
) dependsOn(osgiDiningHakkersSampleApi, osgiDiningHakkersSampleCommand, osgiDiningHakkersSampleCore, uncommons)
|
2013-04-11 08:39:09 +02:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
lazy val osgiSampleSettings: Seq[Setting[_]] = Seq(target := baseDirectory.value / "target-sbt")
|
2013-04-11 08:39:09 +02:00
|
|
|
|
|
2011-10-05 17:41:00 +02:00
|
|
|
|
lazy val docs = Project(
|
|
|
|
|
|
id = "akka-docs",
|
|
|
|
|
|
base = file("akka-docs"),
|
2014-01-16 20:35:02 +01:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test",
|
2014-01-22 12:48:10 +01:00
|
|
|
|
remote % "compile;test->test", cluster, slf4j, agent, zeroMQ, camel, osgi,
|
2013-09-14 14:19:18 +02:00
|
|
|
|
persistence % "compile;test->test"),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ docFormatSettings ++ site.settings ++ site.sphinxSupport() ++ site.publishSite ++ sphinxPreprocessing ++ cpsPlugin ++ Seq(
|
2012-09-26 18:21:52 +12:00
|
|
|
|
sourceDirectory in Sphinx <<= baseDirectory / "rst",
|
|
|
|
|
|
sphinxPackages in Sphinx <+= baseDirectory { _ / "_sphinx" / "pygments" },
|
2012-09-27 17:05:27 +02:00
|
|
|
|
// copy akka-contrib/docs into our rst_preprocess/contrib (and apply substitutions)
|
|
|
|
|
|
preprocess in Sphinx <<= (preprocess in Sphinx,
|
2012-09-28 13:10:58 +02:00
|
|
|
|
baseDirectory in contrib,
|
2012-09-27 17:05:27 +02:00
|
|
|
|
target in preprocess in Sphinx,
|
|
|
|
|
|
cacheDirectory,
|
|
|
|
|
|
preprocessExts in Sphinx,
|
|
|
|
|
|
preprocessVars in Sphinx,
|
|
|
|
|
|
streams) map { (orig, src, target, cacheDir, exts, vars, s) =>
|
|
|
|
|
|
val contribSrc = Map("contribSrc" -> "../../../akka-contrib")
|
2012-09-28 13:10:58 +02:00
|
|
|
|
simplePreprocess(src / "docs", target / "contrib", cacheDir / "sphinx" / "preprocessed-contrib", exts, vars ++ contribSrc, s.log)
|
2012-09-27 17:05:27 +02:00
|
|
|
|
orig
|
|
|
|
|
|
},
|
2012-09-27 16:00:25 +12:00
|
|
|
|
enableOutput in generatePdf in Sphinx := true,
|
2013-01-24 15:06:14 +01:00
|
|
|
|
enableOutput in generateEpub in Sphinx := true,
|
2012-09-26 18:21:52 +12:00
|
|
|
|
unmanagedSourceDirectories in Test <<= sourceDirectory in Sphinx apply { _ ** "code" get },
|
2011-10-05 17:41:00 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.docs,
|
2013-02-10 16:04:59 -05:00
|
|
|
|
publishArtifact in Compile := false,
|
2012-06-25 19:30:13 +02:00
|
|
|
|
unmanagedSourceDirectories in ScalariformKeys.format in Test <<= unmanagedSourceDirectories in Test,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-a"),
|
|
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2011-10-05 17:41:00 +02:00
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2012-09-25 16:09:44 +02:00
|
|
|
|
lazy val contrib = Project(
|
|
|
|
|
|
id = "akka-contrib",
|
|
|
|
|
|
base = file("akka-contrib"),
|
2013-11-19 15:53:40 +01:00
|
|
|
|
dependencies = Seq(remote, remoteTests % "test->test", cluster, persistence),
|
2013-12-03 16:34:26 +01:00
|
|
|
|
settings = defaultSettings ++ formatSettings ++ scaladocSettings ++ javadocSettings ++ multiJvmSettings ++ Seq(
|
2012-09-27 15:57:46 +02:00
|
|
|
|
libraryDependencies ++= Dependencies.contrib,
|
|
|
|
|
|
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v"),
|
2013-08-27 16:17:22 +02:00
|
|
|
|
reportBinaryIssues := (), // disable bin comp check
|
2012-09-25 16:09:44 +02:00
|
|
|
|
description := """|
|
|
|
|
|
|
|This subproject provides a home to modules contributed by external
|
|
|
|
|
|
|developers which may or may not move into the officially supported code
|
|
|
|
|
|
|base over time. A module in this subproject doesn't have to obey the rule
|
|
|
|
|
|
|of staying binary compatible between minor releases. Breaking API changes
|
|
|
|
|
|
|may be introduced in minor releases without notice as we refine and
|
|
|
|
|
|
|simplify based on your feedback. A module may be dropped in any release
|
|
|
|
|
|
|without prior deprecation. The Typesafe subscription does not cover
|
|
|
|
|
|
|support for these modules.
|
|
|
|
|
|
|""".stripMargin
|
|
|
|
|
|
)
|
2012-09-27 15:57:46 +02:00
|
|
|
|
) configs (MultiJvm)
|
2012-09-25 16:09:44 +02:00
|
|
|
|
|
2013-12-03 09:18:26 +01:00
|
|
|
|
// // this issue will be fixed in M8, for now we need to exclude M6, M7 modules used to compile the compiler
|
|
|
|
|
|
def excludeOldModules(m: ModuleID) = List("M6", "M7").foldLeft(m) { (mID, mStone) =>
|
|
|
|
|
|
val version = s"2.11.0-$mStone"
|
|
|
|
|
|
mID.exclude("org.scala-lang.modules", s"scala-parser-combinators_$version").exclude("org.scala-lang.modules", s"scala-xml_$version")
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-12-31 16:37:58 +01:00
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
// Settings
|
|
|
|
|
|
|
2012-09-19 15:04:27 +02:00
|
|
|
|
override lazy val settings =
|
|
|
|
|
|
super.settings ++
|
|
|
|
|
|
buildSettings ++
|
|
|
|
|
|
Seq(
|
2012-10-15 20:26:13 +02:00
|
|
|
|
shellPrompt := { s => Project.extract(s).currentProject.id + " > " }
|
2013-12-03 09:18:26 +01:00
|
|
|
|
) ++
|
|
|
|
|
|
resolverSettings
|
2011-07-08 18:01:19 +12:00
|
|
|
|
|
2012-11-09 08:00:30 +01:00
|
|
|
|
lazy val baseSettings = Defaults.defaultSettings ++ Publish.settings
|
2011-07-08 18:01:19 +12:00
|
|
|
|
|
|
|
|
|
|
lazy val parentSettings = baseSettings ++ Seq(
|
2013-08-27 16:17:22 +02:00
|
|
|
|
publishArtifact := false,
|
|
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-12-03 16:34:26 +01:00
|
|
|
|
lazy val sampleSettings = defaultSettings ++ docFormatSettings ++ Seq(
|
2013-08-27 16:17:22 +02:00
|
|
|
|
publishArtifact in (Compile, packageBin) := false,
|
|
|
|
|
|
reportBinaryIssues := () // disable bin comp check
|
2012-09-20 21:50:35 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2012-09-27 15:57:46 +02:00
|
|
|
|
lazy val experimentalSettings = Seq(
|
|
|
|
|
|
description := """|This module of Akka is marked as
|
|
|
|
|
|
|experimental, which means that it is in early
|
|
|
|
|
|
|access mode, which also means that it is not covered
|
|
|
|
|
|
|by commercial support. An experimental module doesn't
|
|
|
|
|
|
|have to obey the rule of staying binary compatible
|
|
|
|
|
|
|between minor releases. Breaking API changes may be
|
|
|
|
|
|
|introduced in minor releases without notice as we
|
|
|
|
|
|
|refine and simplify based on your feedback. An
|
|
|
|
|
|
|experimental module may be dropped in major releases
|
|
|
|
|
|
|without prior deprecation.
|
|
|
|
|
|
|""".stripMargin
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2011-11-28 13:02:11 +13:00
|
|
|
|
val excludeTestNames = SettingKey[Seq[String]]("exclude-test-names")
|
2012-05-29 09:05:46 +02:00
|
|
|
|
val excludeTestTags = SettingKey[Set[String]]("exclude-test-tags")
|
|
|
|
|
|
val onlyTestTags = SettingKey[Set[String]]("only-test-tags")
|
2011-07-14 14:10:37 +12:00
|
|
|
|
|
2012-05-27 19:20:30 +02:00
|
|
|
|
lazy val defaultMultiJvmOptions: Seq[String] = {
|
2012-06-28 11:32:11 +02:00
|
|
|
|
import scala.collection.JavaConverters._
|
2013-01-21 12:14:46 -08:00
|
|
|
|
// multinode.D= and multinode.X= makes it possible to pass arbitrary
|
2012-10-15 15:15:40 +02:00
|
|
|
|
// -D or -X arguments to the forked jvm, e.g.
|
|
|
|
|
|
// -Dmultinode.Djava.net.preferIPv4Stack=true -Dmultinode.Xmx512m -Dmultinode.XX:MaxPermSize=256M
|
2013-04-23 15:05:27 +02:00
|
|
|
|
// -DMultiJvm.akka.cluster.Stress.nrOfNodes=15
|
2012-10-15 17:27:02 +02:00
|
|
|
|
val MultinodeJvmArgs = "multinode\\.(D|X)(.*)".r
|
2013-04-23 15:05:27 +02:00
|
|
|
|
val knownPrefix = Set("multnode.", "akka.", "MultiJvm.")
|
2012-06-28 11:32:11 +02:00
|
|
|
|
val akkaProperties = System.getProperties.propertyNames.asScala.toList.collect {
|
2013-01-21 12:14:46 -08:00
|
|
|
|
case MultinodeJvmArgs(a, b) =>
|
2012-10-15 15:15:40 +02:00
|
|
|
|
val value = System.getProperty("multinode." + a + b)
|
|
|
|
|
|
"-" + a + b + (if (value == "") "" else "=" + value)
|
2013-04-23 15:05:27 +02:00
|
|
|
|
case key: String if knownPrefix.exists(pre => key.startsWith(pre)) => "-D" + key + "=" + System.getProperty(key)
|
2012-06-28 11:32:11 +02:00
|
|
|
|
}
|
2012-11-23 15:37:44 +01:00
|
|
|
|
|
2013-01-21 12:14:46 -08:00
|
|
|
|
"-Xmx256m" :: akkaProperties :::
|
2012-11-23 15:37:44 +01:00
|
|
|
|
(if (getBoolean("sbt.log.noformat")) List("-Dakka.test.nocolor=true") else Nil)
|
2012-05-24 10:00:35 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-05-28 18:37:41 +02:00
|
|
|
|
// for excluding tests by name use system property: -Dakka.test.names.exclude=TimingSpec
|
|
|
|
|
|
// not supported by multi-jvm tests
|
|
|
|
|
|
lazy val useExcludeTestNames: Seq[String] = systemPropertyAsSeq("akka.test.names.exclude")
|
|
|
|
|
|
|
|
|
|
|
|
// for excluding tests by tag use system property: -Dakka.test.tags.exclude=<tag name>
|
|
|
|
|
|
// note that it will not be used if you specify -Dakka.test.tags.only
|
2012-05-29 09:05:46 +02:00
|
|
|
|
lazy val useExcludeTestTags: Set[String] = {
|
2012-10-08 13:27:34 +02:00
|
|
|
|
if (useOnlyTestTags.isEmpty) systemPropertyAsSeq("akka.test.tags.exclude").toSet
|
2012-05-29 09:05:46 +02:00
|
|
|
|
else Set.empty
|
2012-05-27 19:20:30 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-05-28 18:37:41 +02:00
|
|
|
|
// for running only tests by tag use system property: -Dakka.test.tags.only=<tag name>
|
2012-05-29 09:05:46 +02:00
|
|
|
|
lazy val useOnlyTestTags: Set[String] = systemPropertyAsSeq("akka.test.tags.only").toSet
|
2012-05-28 18:37:41 +02:00
|
|
|
|
|
2012-06-07 13:32:12 +02:00
|
|
|
|
def executeMultiJvmTests: Boolean = {
|
2012-10-08 13:27:34 +02:00
|
|
|
|
useOnlyTestTags.contains("long-running") || !useExcludeTestTags.contains("long-running")
|
2012-06-07 13:32:12 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-05-29 09:05:46 +02:00
|
|
|
|
def systemPropertyAsSeq(name: String): Seq[String] = {
|
2012-05-28 18:37:41 +02:00
|
|
|
|
val prop = System.getProperty(name, "")
|
2012-05-29 09:05:46 +02:00
|
|
|
|
if (prop.isEmpty) Seq.empty else prop.split(",").toSeq
|
2012-05-27 19:20:30 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-05-29 17:16:28 +02:00
|
|
|
|
val multiNodeEnabled = java.lang.Boolean.getBoolean("akka.test.multi-node")
|
|
|
|
|
|
|
2012-05-27 19:20:30 +02:00
|
|
|
|
lazy val defaultMultiJvmScalatestOptions: Seq[String] = {
|
2012-10-08 13:27:34 +02:00
|
|
|
|
val excludeTags = useExcludeTestTags.toSeq
|
2012-08-13 11:29:42 +02:00
|
|
|
|
Seq("-C", "org.scalatest.akka.QuietReporter") ++
|
2012-05-29 17:16:28 +02:00
|
|
|
|
(if (excludeTags.isEmpty) Seq.empty else Seq("-l", if (multiNodeEnabled) excludeTags.mkString("\"", " ", "\"") else excludeTags.mkString(" "))) ++
|
|
|
|
|
|
(if (useOnlyTestTags.isEmpty) Seq.empty else Seq("-n", if (multiNodeEnabled) useOnlyTestTags.mkString("\"", " ", "\"") else useOnlyTestTags.mkString(" ")))
|
2012-05-27 19:20:30 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2014-02-06 08:56:08 +01:00
|
|
|
|
val (mavenLocalResolver, mavenLocalResolverSettings) =
|
|
|
|
|
|
System.getProperty("akka.build.M2Dir") match {
|
|
|
|
|
|
case null => (Resolver.mavenLocal, Seq.empty)
|
|
|
|
|
|
case path =>
|
|
|
|
|
|
// Maven resolver settings
|
|
|
|
|
|
val resolver = Resolver.file("user-publish-m2-local", new File(path))
|
|
|
|
|
|
(resolver, Seq(
|
|
|
|
|
|
otherResolvers := resolver:: publishTo.value.toList,
|
|
|
|
|
|
publishM2Configuration := Classpaths.publishConfig(packagedArtifacts.value, None, resolverName = resolver.name, checksums = checksums.in(publishM2).value, logging = ivyLoggingLevel.value)
|
|
|
|
|
|
))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2013-12-03 09:18:26 +01:00
|
|
|
|
lazy val resolverSettings = {
|
|
|
|
|
|
// should we be allowed to use artifacts published to the local maven repository
|
|
|
|
|
|
if(System.getProperty("akka.build.useLocalMavenResolver", "false").toBoolean)
|
2014-02-06 08:56:08 +01:00
|
|
|
|
Seq(resolvers += mavenLocalResolver)
|
2013-12-03 09:18:26 +01:00
|
|
|
|
else Seq.empty
|
|
|
|
|
|
} ++ {
|
|
|
|
|
|
// should we be allowed to use artifacts from sonatype snapshots
|
|
|
|
|
|
if(System.getProperty("akka.build.useSnapshotSonatypeResolver", "false").toBoolean)
|
|
|
|
|
|
Seq(resolvers += Resolver.sonatypeRepo("snapshots"))
|
|
|
|
|
|
else Seq.empty
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2013-11-27 10:50:41 +01:00
|
|
|
|
lazy val defaultSettings = baseSettings ++ mimaSettings ++ resolverSettings ++
|
2013-09-13 11:47:32 +02:00
|
|
|
|
Protobuf.settings ++ Seq(
|
2011-07-04 19:16:43 +12:00
|
|
|
|
// compile options
|
2013-03-28 23:45:48 +01:00
|
|
|
|
scalacOptions in Compile ++= Seq("-encoding", "UTF-8", "-target:jvm-1.6", "-deprecation", "-feature", "-unchecked", "-Xlog-reflective-calls", "-Xlint"),
|
2013-12-15 12:07:39 +01:00
|
|
|
|
javacOptions in compile ++= Seq("-encoding", "UTF-8", "-source", "1.6", "-target", "1.6", "-Xlint:unchecked", "-Xlint:deprecation"),
|
|
|
|
|
|
javacOptions in doc ++= Seq("-encoding", "UTF-8", "-source", "1.6"),
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-12-21 14:53:05 +01:00
|
|
|
|
crossVersion := CrossVersion.binary,
|
2012-08-22 15:52:32 +02:00
|
|
|
|
|
2012-01-12 13:45:53 +01:00
|
|
|
|
ivyLoggingLevel in ThisBuild := UpdateLogging.Quiet,
|
|
|
|
|
|
|
2013-11-27 10:50:41 +01:00
|
|
|
|
licenses := Seq(("Apache License, Version 2.0", url("http://www.apache.org/licenses/LICENSE-2.0"))),
|
|
|
|
|
|
homepage := Some(url("http://akka.io/")),
|
2012-09-24 11:52:02 +02:00
|
|
|
|
|
2013-03-06 09:44:34 +01:00
|
|
|
|
initialCommands :=
|
|
|
|
|
|
"""|import language.postfixOps
|
|
|
|
|
|
|import akka.actor._
|
|
|
|
|
|
|import ActorDSL._
|
|
|
|
|
|
|import scala.concurrent._
|
|
|
|
|
|
|import com.typesafe.config.ConfigFactory
|
|
|
|
|
|
|import scala.concurrent.duration._
|
|
|
|
|
|
|import akka.util.Timeout
|
2013-03-07 19:59:59 +01:00
|
|
|
|
|var config = ConfigFactory.parseString("akka.stdout-loglevel=INFO,akka.loglevel=DEBUG,pinned{type=PinnedDispatcher,executor=thread-pool-executor,throughput=1000}")
|
|
|
|
|
|
|var remoteConfig = ConfigFactory.parseString("akka.remote.netty{port=0,use-dispatcher-for-io=akka.actor.default-dispatcher,execution-pool-size=0},akka.actor.provider=akka.remote.RemoteActorRefProvider").withFallback(config)
|
2013-03-06 09:44:34 +01:00
|
|
|
|
|var system: ActorSystem = null
|
|
|
|
|
|
|implicit def _system = system
|
|
|
|
|
|
|def startSystem(remoting: Boolean = false) { system = ActorSystem("repl", if(remoting) remoteConfig else config); println("don’t forget to system.shutdown()!") }
|
|
|
|
|
|
|implicit def ec = system.dispatcher
|
|
|
|
|
|
|implicit val timeout = Timeout(5 seconds)
|
|
|
|
|
|
|""".stripMargin,
|
|
|
|
|
|
|
2012-09-24 11:52:02 +02:00
|
|
|
|
/**
|
|
|
|
|
|
* Test settings
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
2012-01-01 11:33:20 +01:00
|
|
|
|
parallelExecution in Test := System.getProperty("akka.parallelExecution", "false").toBoolean,
|
2012-07-03 11:19:40 +02:00
|
|
|
|
logBuffered in Test := System.getProperty("akka.logBufferedTests", "false").toBoolean,
|
2011-07-14 14:10:37 +12:00
|
|
|
|
|
2012-05-28 18:37:41 +02:00
|
|
|
|
excludeTestNames := useExcludeTestNames,
|
|
|
|
|
|
excludeTestTags := useExcludeTestTags,
|
|
|
|
|
|
onlyTestTags := useOnlyTestTags,
|
2011-11-28 13:02:11 +13:00
|
|
|
|
|
|
|
|
|
|
// add filters for tests excluded by name
|
|
|
|
|
|
testOptions in Test <++= excludeTestNames map { _.map(exclude => Tests.Filter(test => !test.contains(exclude))) },
|
|
|
|
|
|
|
2012-10-08 13:27:34 +02:00
|
|
|
|
// add arguments for tests excluded by tag
|
|
|
|
|
|
testOptions in Test <++= excludeTestTags map { tags =>
|
2012-05-29 15:31:57 +02:00
|
|
|
|
if (tags.isEmpty) Seq.empty else Seq(Tests.Argument("-l", tags.mkString(" ")))
|
2011-11-28 13:02:11 +13:00
|
|
|
|
},
|
|
|
|
|
|
|
2012-05-28 18:37:41 +02:00
|
|
|
|
// add arguments for running only tests by tag
|
|
|
|
|
|
testOptions in Test <++= onlyTestTags map { tags =>
|
2012-05-29 15:31:57 +02:00
|
|
|
|
if (tags.isEmpty) Seq.empty else Seq(Tests.Argument("-n", tags.mkString(" ")))
|
2011-11-28 13:02:11 +13:00
|
|
|
|
},
|
2011-09-16 13:54:50 +02:00
|
|
|
|
|
2012-06-26 11:58:04 +02:00
|
|
|
|
// show full stack traces and test case durations
|
2013-08-27 16:17:22 +02:00
|
|
|
|
testOptions in Test += Tests.Argument("-oDF"),
|
|
|
|
|
|
|
2013-10-18 14:13:23 +02:00
|
|
|
|
// don't save test output to a file
|
2014-01-21 12:47:43 +01:00
|
|
|
|
testListeners in (Test, test) := Seq(TestLogger(streams.value.log, {_ => streams.value.log }, logBuffered.value))
|
2014-02-06 08:56:08 +01:00
|
|
|
|
) ++ mavenLocalResolverSettings
|
2011-07-08 12:53:36 +12:00
|
|
|
|
|
2013-08-27 16:17:22 +02:00
|
|
|
|
val validatePullRequest = TaskKey[Unit]("validate-pull-request", "Additional tasks for pull request validation")
|
|
|
|
|
|
|
2014-01-28 18:58:13 +04:00
|
|
|
|
def githubUrl(v: String): String = {
|
|
|
|
|
|
val branch = if (v.endsWith("SNAPSHOT")) "master" else "v" + v
|
|
|
|
|
|
"http://github.com/akka/akka/tree/" + branch
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-09-26 18:21:52 +12:00
|
|
|
|
// preprocessing settings for sphinx
|
|
|
|
|
|
lazy val sphinxPreprocessing = inConfig(Sphinx)(Seq(
|
|
|
|
|
|
target in preprocess <<= baseDirectory / "rst_preprocessed",
|
|
|
|
|
|
preprocessExts := Set("rst", "py"),
|
|
|
|
|
|
// customization of sphinx @<key>@ replacements, add to all sphinx-using projects
|
|
|
|
|
|
// add additional replacements here
|
|
|
|
|
|
preprocessVars <<= (scalaVersion, version) { (s, v) =>
|
2012-09-21 10:47:58 +02:00
|
|
|
|
val BinVer = """(\d+\.\d+)\.\d+""".r
|
|
|
|
|
|
Map(
|
|
|
|
|
|
"version" -> v,
|
|
|
|
|
|
"scalaVersion" -> s,
|
|
|
|
|
|
"crossString" -> (s match {
|
|
|
|
|
|
case BinVer(_) => ""
|
|
|
|
|
|
case _ => "cross CrossVersion.full"
|
|
|
|
|
|
}),
|
|
|
|
|
|
"jarName" -> (s match {
|
|
|
|
|
|
case BinVer(bv) => "akka-actor_" + bv + "-" + v + ".jar"
|
|
|
|
|
|
case _ => "akka-actor_" + s + "-" + v + ".jar"
|
|
|
|
|
|
}),
|
|
|
|
|
|
"binVersion" -> (s match {
|
|
|
|
|
|
case BinVer(bv) => bv
|
|
|
|
|
|
case _ => s
|
2012-10-22 11:14:22 +02:00
|
|
|
|
}),
|
2012-11-15 12:48:13 +01:00
|
|
|
|
"sigarVersion" -> Dependencies.Compile.sigar.revision,
|
2014-01-28 18:58:13 +04:00
|
|
|
|
"github" -> githubUrl(v)
|
2012-09-21 10:47:58 +02:00
|
|
|
|
)
|
|
|
|
|
|
},
|
2012-09-26 18:21:52 +12:00
|
|
|
|
preprocess <<= (sourceDirectory, target in preprocess, cacheDirectory, preprocessExts, preprocessVars, streams) map {
|
|
|
|
|
|
(src, target, cacheDir, exts, vars, s) => simplePreprocess(src, target, cacheDir / "sphinx" / "preprocessed", exts, vars, s.log)
|
|
|
|
|
|
},
|
|
|
|
|
|
sphinxInputs <<= (sphinxInputs, preprocess) map { (inputs, preprocessed) => inputs.copy(src = preprocessed) }
|
|
|
|
|
|
)) ++ Seq(
|
|
|
|
|
|
cleanFiles <+= target in preprocess in Sphinx
|
2012-09-21 10:47:58 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2012-10-05 02:42:09 +02:00
|
|
|
|
lazy val formatSettings = SbtScalariform.scalariformSettings ++ Seq(
|
2013-12-03 16:34:26 +01:00
|
|
|
|
ScalariformKeys.preferences in Compile := formattingPreferences,
|
|
|
|
|
|
ScalariformKeys.preferences in Test := formattingPreferences
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val docFormatSettings = SbtScalariform.scalariformSettings ++ Seq(
|
|
|
|
|
|
ScalariformKeys.preferences in Compile := docFormattingPreferences,
|
|
|
|
|
|
ScalariformKeys.preferences in Test := docFormattingPreferences,
|
|
|
|
|
|
ScalariformKeys.preferences in MultiJvm := docFormattingPreferences
|
2011-07-26 17:49:08 +12:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def formattingPreferences = {
|
|
|
|
|
|
import scalariform.formatter.preferences._
|
|
|
|
|
|
FormattingPreferences()
|
|
|
|
|
|
.setPreference(RewriteArrowSymbols, true)
|
|
|
|
|
|
.setPreference(AlignParameters, true)
|
|
|
|
|
|
.setPreference(AlignSingleLineCaseStatements, true)
|
|
|
|
|
|
}
|
2013-12-03 16:34:26 +01:00
|
|
|
|
|
|
|
|
|
|
def docFormattingPreferences = {
|
|
|
|
|
|
import scalariform.formatter.preferences._
|
|
|
|
|
|
FormattingPreferences()
|
|
|
|
|
|
.setPreference(RewriteArrowSymbols, false)
|
|
|
|
|
|
.setPreference(AlignParameters, true)
|
|
|
|
|
|
.setPreference(AlignSingleLineCaseStatements, true)
|
|
|
|
|
|
}
|
2011-07-26 17:49:08 +12:00
|
|
|
|
|
2013-10-18 14:13:23 +02:00
|
|
|
|
lazy val multiJvmSettings = SbtMultiJvm.multiJvmSettings ++ inConfig(MultiJvm)(SbtScalariform.configScalariformSettings) ++ Seq(
|
2012-09-27 15:57:46 +02:00
|
|
|
|
jvmOptions in MultiJvm := defaultMultiJvmOptions,
|
2013-10-18 14:13:23 +02:00
|
|
|
|
compileInputs in (MultiJvm, compile) <<= (compileInputs in (MultiJvm, compile)) dependsOn (ScalariformKeys.format in MultiJvm),
|
2012-08-30 13:16:36 +02:00
|
|
|
|
compile in MultiJvm <<= (compile in MultiJvm) triggeredBy (compile in Test),
|
2012-06-07 13:32:12 +02:00
|
|
|
|
ScalariformKeys.preferences in MultiJvm := formattingPreferences) ++
|
2012-10-01 14:38:46 +02:00
|
|
|
|
Option(System.getProperty("akka.test.multi-node.hostsFileName")).map(x => Seq(multiNodeHostsFileName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
2012-08-30 16:16:29 +02:00
|
|
|
|
Option(System.getProperty("akka.test.multi-node.java")).map(x => Seq(multiNodeJavaName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
2012-10-01 14:38:46 +02:00
|
|
|
|
Option(System.getProperty("akka.test.multi-node.targetDirName")).map(x => Seq(multiNodeTargetDirName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
2012-06-07 14:12:13 +02:00
|
|
|
|
((executeMultiJvmTests, multiNodeEnabled) match {
|
|
|
|
|
|
case (true, true) =>
|
2013-10-18 14:13:23 +02:00
|
|
|
|
executeTests in Test <<= (executeTests in Test, multiNodeExecuteTests 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)
|
2012-06-07 14:12:13 +02:00
|
|
|
|
}
|
|
|
|
|
|
case (true, false) =>
|
2013-10-18 14:13:23 +02:00
|
|
|
|
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)
|
2012-06-07 14:12:13 +02:00
|
|
|
|
}
|
|
|
|
|
|
case (false, _) => Seq.empty
|
|
|
|
|
|
})
|
2012-05-25 10:02:35 +02:00
|
|
|
|
|
2014-02-03 12:20:09 +01:00
|
|
|
|
lazy val scaladocDiagramsEnabled = System.getProperty("akka.scaladoc.diagrams", "true").toBoolean
|
2014-01-23 15:46:24 +04:00
|
|
|
|
lazy val scaladocAutoAPI = System.getProperty("akka.scaladoc.autoapi", "true").toBoolean
|
|
|
|
|
|
|
2014-01-28 18:58:13 +04:00
|
|
|
|
def scaladocOptions(ver: String, base: File): List[String] = {
|
|
|
|
|
|
val urlString = githubUrl(ver) + "/€{FILE_PATH}.scala"
|
|
|
|
|
|
val opts = List("-implicits", "-doc-source-url", urlString, "-sourcepath", base.getAbsolutePath)
|
|
|
|
|
|
if (scaladocDiagramsEnabled) "-diagrams"::opts else opts
|
|
|
|
|
|
}
|
2013-01-30 14:46:23 +01:00
|
|
|
|
|
2014-01-23 15:46:24 +04:00
|
|
|
|
lazy val scaladocSettings: Seq[sbt.Setting[_]] = {
|
|
|
|
|
|
scaladocSettingsNoVerificationOfDiagrams ++
|
|
|
|
|
|
(if (scaladocDiagramsEnabled) Seq(doc in Compile ~= scaladocVerifier) else Seq.empty)
|
2013-01-30 14:46:23 +01:00
|
|
|
|
}
|
2014-01-21 13:51:29 +01:00
|
|
|
|
|
|
|
|
|
|
// for projects with few (one) classes there might not be any diagrams
|
2014-01-28 18:58:13 +04:00
|
|
|
|
lazy val scaladocSettingsNoVerificationOfDiagrams: Seq[sbt.Setting[_]] = {
|
|
|
|
|
|
inTask(doc)(Seq(
|
|
|
|
|
|
scalacOptions in Compile <++= (version, baseDirectory in akka) map scaladocOptions,
|
2014-01-23 15:46:24 +04:00
|
|
|
|
autoAPIMappings := scaladocAutoAPI
|
2014-01-28 18:58:13 +04:00
|
|
|
|
))
|
2014-01-21 13:51:29 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2013-01-30 14:46:23 +01:00
|
|
|
|
lazy val unidocScaladocSettings: Seq[sbt.Setting[_]]= {
|
2014-01-30 15:58:00 +04:00
|
|
|
|
inTask(doc)(Seq(
|
|
|
|
|
|
scalacOptions <++= (version, baseDirectory in akka) map scaladocOptions,
|
|
|
|
|
|
autoAPIMappings := scaladocAutoAPI
|
|
|
|
|
|
)) ++
|
2014-01-28 18:58:13 +04:00
|
|
|
|
(if (scaladocDiagramsEnabled) Seq(sunidoc ~= scaladocVerifier) else Seq.empty)
|
2013-01-30 14:46:23 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def scaladocVerifier(file: File): File= {
|
|
|
|
|
|
@tailrec
|
|
|
|
|
|
def findHTMLFileWithDiagram(dirs: Seq[File]): Boolean = {
|
|
|
|
|
|
if (dirs.isEmpty) false
|
|
|
|
|
|
else {
|
|
|
|
|
|
val curr = dirs.head
|
|
|
|
|
|
val (newDirs, files) = curr.listFiles.partition(_.isDirectory)
|
|
|
|
|
|
val rest = dirs.tail ++ newDirs
|
|
|
|
|
|
val hasDiagram = files exists { f =>
|
|
|
|
|
|
val name = f.getName
|
|
|
|
|
|
if (name.endsWith(".html") && !name.startsWith("index-") &&
|
|
|
|
|
|
!(name.compare("index.html") == 0) && !(name.compare("package.html") == 0)) {
|
|
|
|
|
|
val source = scala.io.Source.fromFile(f)
|
|
|
|
|
|
val hd = source.getLines().exists(_.contains("<div class=\"toggleContainer block diagram-container\" id=\"inheritance-diagram-container\">"))
|
|
|
|
|
|
source.close()
|
|
|
|
|
|
hd
|
|
|
|
|
|
}
|
|
|
|
|
|
else false
|
|
|
|
|
|
}
|
|
|
|
|
|
hasDiagram || findHTMLFileWithDiagram(rest)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// if we have generated scaladoc and none of the files have a diagram then fail
|
|
|
|
|
|
if (file.exists() && !findHTMLFileWithDiagram(List(file)))
|
|
|
|
|
|
sys.error("ScalaDoc diagrams not generated!")
|
|
|
|
|
|
else
|
|
|
|
|
|
file
|
|
|
|
|
|
}
|
2012-08-30 16:16:29 +02:00
|
|
|
|
|
2012-05-25 10:02:35 +02:00
|
|
|
|
lazy val mimaSettings = mimaDefaultSettings ++ Seq(
|
|
|
|
|
|
// MiMa
|
|
|
|
|
|
previousArtifact := None
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2013-08-27 16:17:22 +02:00
|
|
|
|
def akkaPreviousArtifact(id: String, organization: String = "com.typesafe.akka", version: String = "2.2.0",
|
|
|
|
|
|
crossVersion: String = "2.10"): Option[sbt.ModuleID] =
|
|
|
|
|
|
if (enableMiMa) {
|
|
|
|
|
|
val fullId = if (crossVersion.isEmpty) id else id + "_" + crossVersion
|
|
|
|
|
|
Some(organization % fullId % version) // the artifact to compare binary compatibility with
|
|
|
|
|
|
}
|
2012-07-27 13:15:51 +02:00
|
|
|
|
else None
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2012-12-18 12:10:59 +01:00
|
|
|
|
def loadSystemProperties(fileName: String): Unit = {
|
|
|
|
|
|
import scala.collection.JavaConverters._
|
|
|
|
|
|
val file = new File(fileName)
|
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
|
println("Loading system properties from file `" + fileName + "`")
|
|
|
|
|
|
val in = new InputStreamReader(new FileInputStream(file), "UTF-8")
|
|
|
|
|
|
val props = new Properties
|
|
|
|
|
|
props.load(in)
|
|
|
|
|
|
in.close()
|
|
|
|
|
|
sys.props ++ props.asScala
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-08-13 19:23:43 +02:00
|
|
|
|
// OSGi settings
|
|
|
|
|
|
|
|
|
|
|
|
object OSGi {
|
|
|
|
|
|
|
2013-11-29 11:31:38 +01:00
|
|
|
|
// The included osgiSettings that creates bundles also publish the jar files
|
|
|
|
|
|
// in the .../bundles directory which makes testing locally published artifacts
|
|
|
|
|
|
// a pain. Create bundles but publish them to the normal .../jars directory.
|
|
|
|
|
|
def osgiSettings = defaultOsgiSettings ++ Seq(
|
|
|
|
|
|
packagedArtifact in (Compile, packageBin) <<= (artifact in (Compile, packageBin), OsgiKeys.bundle).identityMap
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val actor = osgiSettings ++ Seq(
|
|
|
|
|
|
OsgiKeys.exportPackage := Seq("akka*"),
|
|
|
|
|
|
OsgiKeys.privatePackage := Seq("akka.osgi.impl"),
|
|
|
|
|
|
//akka-actor packages are not imported, as contained in the CP
|
|
|
|
|
|
OsgiKeys.importPackage := (osgiOptionalImports map optionalResolution) ++ Seq("!sun.misc", scalaImport(), configImport(), "*"),
|
|
|
|
|
|
// dynamicImportPackage needed for loading classes defined in configuration
|
|
|
|
|
|
OsgiKeys.dynamicImportPackage := Seq("*")
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2012-08-13 19:23:43 +02:00
|
|
|
|
val agent = exports(Seq("akka.agent.*"))
|
|
|
|
|
|
|
|
|
|
|
|
val camel = exports(Seq("akka.camel.*"))
|
|
|
|
|
|
|
2013-09-13 11:47:32 +02:00
|
|
|
|
val cluster = exports(Seq("akka.cluster.*"), imports = Seq(protobufImport()))
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2012-09-17 13:47:23 +02:00
|
|
|
|
val fileMailbox = exports(Seq("akka.actor.mailbox.filebased.*"))
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2012-11-21 10:10:58 +01:00
|
|
|
|
val mailboxesCommon = exports(Seq("akka.actor.mailbox.*"), imports = Seq(protobufImport()))
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val osgi = exports(Seq("akka.osgi.*"))
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2013-02-06 15:54:58 +01:00
|
|
|
|
val osgiDiningHakkersSampleApi = exports(Seq("akka.sample.osgi.api"))
|
|
|
|
|
|
|
|
|
|
|
|
val osgiDiningHakkersSampleCommand = osgiSettings ++ Seq(OsgiKeys.bundleActivator := Option("akka.sample.osgi.command.Activator"), OsgiKeys.privatePackage := Seq("akka.sample.osgi.command"))
|
|
|
|
|
|
|
|
|
|
|
|
val osgiDiningHakkersSampleCore = exports(Seq("")) ++ Seq(OsgiKeys.bundleActivator := Option("akka.sample.osgi.activation.Activator"), OsgiKeys.privatePackage := Seq("akka.sample.osgi.internal", "akka.sample.osgi.activation", "akka.sample.osgi.service"))
|
|
|
|
|
|
|
|
|
|
|
|
val osgiDiningHakkersSampleUncommons = exports(Seq("org.uncommons.maths.random")) ++ Seq(OsgiKeys.privatePackage := Seq("org.uncommons.maths.binary", "org.uncommons.maths", "org.uncommons.maths.number"))
|
|
|
|
|
|
|
2012-11-21 10:10:58 +01:00
|
|
|
|
val remote = exports(Seq("akka.remote.*"), imports = Seq(protobufImport()))
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
|
|
|
|
|
val slf4j = exports(Seq("akka.event.slf4j.*"))
|
|
|
|
|
|
|
|
|
|
|
|
val dataflow = exports(Seq("akka.dataflow.*"))
|
|
|
|
|
|
|
|
|
|
|
|
val transactor = exports(Seq("akka.transactor.*"))
|
|
|
|
|
|
|
2013-10-09 13:11:53 +02:00
|
|
|
|
val persistence = exports(Seq("akka.persistence.*"), imports = Seq(protobufImport()))
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
2012-11-21 20:22:10 +01:00
|
|
|
|
val testkit = exports(Seq("akka.testkit.*"))
|
|
|
|
|
|
|
2012-11-21 10:10:58 +01:00
|
|
|
|
val zeroMQ = exports(Seq("akka.zeromq.*"), imports = Seq(protobufImport()) )
|
2012-08-13 19:23:43 +02:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val osgiOptionalImports = Seq(
|
|
|
|
|
|
// needed because testkit is normally not used in the application bundle,
|
|
|
|
|
|
// but it should still be included as transitive dependency and used by BundleDelegatingClassLoader
|
|
|
|
|
|
// to be able to find refererence.conf
|
|
|
|
|
|
"akka.testkit",
|
2013-09-13 11:47:32 +02:00
|
|
|
|
"com.google.protobuf")
|
2013-01-10 11:28:08 +01:00
|
|
|
|
|
2012-11-21 10:10:58 +01:00
|
|
|
|
def exports(packages: Seq[String] = Seq(), imports: Seq[String] = Nil) = osgiSettings ++ Seq(
|
|
|
|
|
|
OsgiKeys.importPackage := imports ++ defaultImports,
|
2012-09-15 07:24:24 +02:00
|
|
|
|
OsgiKeys.exportPackage := packages
|
2012-08-13 19:23:43 +02:00
|
|
|
|
)
|
|
|
|
|
|
def defaultImports = Seq("!sun.misc", akkaImport(), configImport(), scalaImport(), "*")
|
2013-10-28 22:36:38 +01:00
|
|
|
|
def akkaImport(packageName: String = "akka.*") = "%s;version=\"[2.3,2.4)\"".format(packageName)
|
2014-01-22 12:48:10 +01:00
|
|
|
|
def configImport(packageName: String = "com.typesafe.config.*") = "%s;version=\"[1.2.0,1.3.0)\"".format(packageName)
|
2013-09-11 12:52:52 +02:00
|
|
|
|
def protobufImport(packageName: String = "com.google.protobuf.*") = "%s;version=\"[2.5.0,2.6.0)\"".format(packageName)
|
2012-08-13 19:23:43 +02:00
|
|
|
|
def scalaImport(packageName: String = "scala.*") = "%s;version=\"[2.10,2.11)\"".format(packageName)
|
2013-01-10 11:28:08 +01:00
|
|
|
|
def optionalResolution(packageName: String) = "%s;resolution:=optional".format(packageName)
|
2012-08-13 19:23:43 +02:00
|
|
|
|
}
|
2011-07-04 19:16:43 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Dependencies
|
|
|
|
|
|
|
|
|
|
|
|
object Dependencies {
|
2012-10-15 14:04:20 +02:00
|
|
|
|
|
2013-12-03 09:18:26 +01:00
|
|
|
|
object Versions {
|
|
|
|
|
|
val scalaStmVersion = System.getProperty("akka.build.scalaStmVersion", "0.7")
|
|
|
|
|
|
val scalaZeroMQVersion = System.getProperty("akka.build.scalaZeroMQVersion", "0.0.7")
|
|
|
|
|
|
val genJavaDocVersion = System.getProperty("akka.build.genJavaDocVersion", "0.5")
|
|
|
|
|
|
val scalaTestVersion = System.getProperty("akka.build.scalaTestVersion", "2.0")
|
|
|
|
|
|
val scalaCheckVersion = System.getProperty("akka.build.scalaCheckVersion", "1.10.1")
|
2014-01-31 11:14:13 +01:00
|
|
|
|
val scalaContinuationsVersion = System.getProperty("akka.build.scalaContinuationsVersion", "1.0.0-RC3")
|
2013-12-03 09:18:26 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-15 14:04:20 +02:00
|
|
|
|
object Compile {
|
2013-12-03 09:18:26 +01:00
|
|
|
|
import Versions._
|
|
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// Several dependencies are mirrored in the OSGi Dining Hackers maven project
|
|
|
|
|
|
// They need to be changed in this file as well:
|
|
|
|
|
|
// akka-samples/akka-sample-osgi-dining-hakkers/pom.xml
|
|
|
|
|
|
|
2012-10-15 14:04:20 +02:00
|
|
|
|
// Compile
|
2013-01-28 02:01:02 +01:00
|
|
|
|
val camelCore = "org.apache.camel" % "camel-core" % "2.10.3" exclude("org.slf4j", "slf4j-api") // ApacheV2
|
2012-10-15 14:04:20 +02:00
|
|
|
|
|
2014-01-09 14:09:52 +01:00
|
|
|
|
val config = "com.typesafe" % "config" % "1.2.0" // ApacheV2
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
2013-12-11 15:22:21 +01:00
|
|
|
|
val netty = "io.netty" % "netty" % "3.8.0.Final" // ApacheV2
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
2013-09-11 12:52:52 +02:00
|
|
|
|
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.5.0" // New BSD
|
2013-12-03 09:18:26 +01:00
|
|
|
|
val scalaStm = "org.scala-stm" %% "scala-stm" % scalaStmVersion // Modified BSD (Scala)
|
2012-10-15 14:04:20 +02:00
|
|
|
|
|
2013-12-11 15:33:30 +01:00
|
|
|
|
val slf4jApi = "org.slf4j" % "slf4j-api" % "1.7.5" // MIT
|
2013-12-03 09:18:26 +01:00
|
|
|
|
val zeroMQClient = "org.zeromq" %% "zeromq-scala-binding" % scalaZeroMQVersion // ApacheV2
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
2012-10-18 13:18:09 +02:00
|
|
|
|
val uncommonsMath = "org.uncommons.maths" % "uncommons-maths" % "1.2.2a" exclude("jfree", "jcommon") exclude("jfree", "jfreechart") // ApacheV2
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
|
|
|
|
|
val osgiCore = "org.osgi" % "org.osgi.core" % "4.3.1" // ApacheV2
|
|
|
|
|
|
val osgiCompendium= "org.osgi" % "org.osgi.compendium" % "4.3.1" // ApacheV2
|
|
|
|
|
|
// mirrored in OSGi sample
|
2013-11-12 09:02:02 +01:00
|
|
|
|
val levelDB = "org.iq80.leveldb" % "leveldb" % "0.5" // ApacheV2
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
2013-11-12 09:02:02 +01:00
|
|
|
|
val levelDBNative = "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.7" // New BSD
|
2012-10-15 14:04:20 +02:00
|
|
|
|
|
|
|
|
|
|
// Camel Sample
|
2013-01-29 22:35:45 +01:00
|
|
|
|
val camelJetty = "org.apache.camel" % "camel-jetty" % camelCore.revision // ApacheV2
|
2012-10-15 14:04:20 +02:00
|
|
|
|
|
2012-11-08 18:49:54 +01:00
|
|
|
|
// Cluster Sample
|
2013-03-01 21:29:22 +01:00
|
|
|
|
val sigar = "org.fusesource" % "sigar" % "1.6.4" // ApacheV2
|
2012-11-08 18:49:54 +01:00
|
|
|
|
|
2013-03-06 09:44:34 +01:00
|
|
|
|
// Compiler plugins
|
2013-12-03 09:18:26 +01:00
|
|
|
|
val genjavadoc = compilerPlugin("com.typesafe.genjavadoc" %% "genjavadoc-plugin" % genJavaDocVersion cross CrossVersion.full) // ApacheV2
|
2013-03-06 09:44:34 +01:00
|
|
|
|
|
2012-10-15 14:04:20 +02:00
|
|
|
|
// Test
|
|
|
|
|
|
|
|
|
|
|
|
object Test {
|
2013-01-25 14:24:23 +13:00
|
|
|
|
val commonsMath = "org.apache.commons" % "commons-math" % "2.1" % "test" // ApacheV2
|
2013-12-20 12:40:54 +01:00
|
|
|
|
val commonsIo = "commons-io" % "commons-io" % "2.4" % "test" // ApacheV2
|
2013-01-25 14:24:23 +13:00
|
|
|
|
val commonsCodec = "commons-codec" % "commons-codec" % "1.7" % "test" // ApacheV2
|
|
|
|
|
|
val junit = "junit" % "junit" % "4.10" % "test" // Common Public License 1.0
|
2013-12-11 15:33:30 +01:00
|
|
|
|
val logback = "ch.qos.logback" % "logback-classic" % "1.0.13" % "test" // EPL 1.0 / LGPL 2.1
|
2013-01-25 14:24:23 +13:00
|
|
|
|
val mockito = "org.mockito" % "mockito-all" % "1.8.1" % "test" // MIT
|
2012-12-22 09:25:31 +01:00
|
|
|
|
// changing the scalatest dependency must be reflected in akka-docs/rst/dev/multi-jvm-testing.rst
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// mirrored in OSGi sample
|
2013-12-03 09:18:26 +01:00
|
|
|
|
val scalatest = "org.scalatest" %% "scalatest" % scalaTestVersion % "test" // ApacheV2
|
|
|
|
|
|
val scalacheck = "org.scalacheck" %% "scalacheck" % scalaCheckVersion % "test" // New BSD
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val pojosr = "com.googlecode.pojosr" % "de.kalpatec.pojosr.framework" % "0.2.1" % "test" // ApacheV2
|
2013-01-25 14:24:23 +13:00
|
|
|
|
val tinybundles = "org.ops4j.pax.tinybundles" % "tinybundles" % "1.0.0" % "test" // ApacheV2
|
|
|
|
|
|
val log4j = "log4j" % "log4j" % "1.2.14" % "test" // ApacheV2
|
|
|
|
|
|
val junitIntf = "com.novocode" % "junit-interface" % "0.8" % "test" // MIT
|
2014-01-22 12:48:10 +01:00
|
|
|
|
// dining hakkers integration test using pax-exam
|
|
|
|
|
|
// mirrored in OSGi sample
|
|
|
|
|
|
val karafExam = "org.apache.karaf.tooling.exam" % "org.apache.karaf.tooling.exam.container" % "2.3.1" % "test" // ApacheV2
|
|
|
|
|
|
// mirrored in OSGi sample
|
|
|
|
|
|
val paxExam = "org.ops4j.pax.exam" % "pax-exam-junit4" % "2.6.0" % "test" // ApacheV2
|
2012-10-15 14:04:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
import Compile._
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-06-28 15:33:49 +02:00
|
|
|
|
val actor = Seq(config)
|
2012-05-29 02:13:25 +02:00
|
|
|
|
|
2012-09-12 15:12:13 +02:00
|
|
|
|
val testkit = Seq(Test.junit, Test.scalatest)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2013-05-28 10:39:38 +02:00
|
|
|
|
val actorTests = Seq(Test.junit, Test.scalatest, Test.commonsCodec, Test.commonsMath, Test.mockito, Test.scalacheck, protobuf, Test.junitIntf)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-06-20 11:28:40 +02:00
|
|
|
|
val remote = Seq(netty, protobuf, uncommonsMath, Test.junit, Test.scalatest)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-09-12 15:12:13 +02:00
|
|
|
|
val remoteTests = Seq(Test.junit, Test.scalatest)
|
2012-09-06 15:35:59 +02:00
|
|
|
|
|
2012-04-24 10:19:36 +02:00
|
|
|
|
val cluster = Seq(Test.junit, Test.scalatest)
|
2012-01-16 14:31:41 +01:00
|
|
|
|
|
2012-02-07 11:21:49 +01:00
|
|
|
|
val slf4j = Seq(slf4jApi, Test.logback)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-07-27 19:17:06 +02:00
|
|
|
|
val agent = Seq(scalaStm, Test.scalatest, Test.junit)
|
2011-12-19 15:46:06 +13:00
|
|
|
|
|
2012-07-27 19:17:06 +02:00
|
|
|
|
val transactor = Seq(scalaStm, Test.scalatest, Test.junit)
|
2011-12-21 13:40:32 +13:00
|
|
|
|
|
2013-11-12 09:02:02 +01:00
|
|
|
|
val persistence = Seq(levelDB, levelDBNative, protobuf, Test.scalatest, Test.junit, Test.commonsIo)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
2011-11-01 09:45:57 +01:00
|
|
|
|
val mailboxes = Seq(Test.scalatest, Test.junit)
|
2011-11-25 11:01:03 +01:00
|
|
|
|
|
2012-05-08 15:07:05 +02:00
|
|
|
|
val fileMailbox = Seq(Test.commonsIo, Test.scalatest, Test.junit)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2012-05-18 16:46:31 +02:00
|
|
|
|
val kernel = Seq(Test.scalatest, Test.junit)
|
2011-07-16 10:38:17 +02:00
|
|
|
|
|
2013-05-08 09:42:25 +02:00
|
|
|
|
val camel = Seq(camelCore, Test.scalatest, Test.junit, Test.mockito, Test.logback, Test.commonsIo, Test.junitIntf)
|
2012-01-19 14:38:44 +00:00
|
|
|
|
|
2012-09-28 00:31:27 +02:00
|
|
|
|
val camelSample = Seq(camelJetty)
|
2012-08-09 19:30:32 +02:00
|
|
|
|
|
2013-01-10 11:28:08 +01:00
|
|
|
|
val osgi = Seq(osgiCore, osgiCompendium, Test.logback, Test.commonsIo, Test.pojosr, Test.tinybundles, Test.scalatest, Test.junit)
|
2012-06-26 22:07:57 +02:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val osgiDiningHakkersSampleCore = Seq(config, osgiCore, osgiCompendium)
|
2013-02-06 15:54:58 +01:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val osgiDiningHakkersSampleCommand = Seq(osgiCore, osgiCompendium)
|
2013-02-06 15:54:58 +01:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val osgiDiningHakkersSampleTest = Seq(osgiCore, osgiCompendium, Test.karafExam, Test.paxExam, Test.junit, Test.scalatest)
|
2013-02-06 15:54:58 +01:00
|
|
|
|
|
2014-01-22 12:48:10 +01:00
|
|
|
|
val uncommons = Seq(uncommonsMath)
|
2012-05-29 12:41:09 +02:00
|
|
|
|
|
2012-07-21 18:09:20 +02:00
|
|
|
|
val docs = Seq(Test.scalatest, Test.junit, Test.junitIntf)
|
2012-01-14 03:16:39 +01:00
|
|
|
|
|
2012-07-27 13:15:51 +02:00
|
|
|
|
val zeroMQ = Seq(protobuf, zeroMQClient, Test.scalatest, Test.junit)
|
2012-09-21 11:47:50 +02:00
|
|
|
|
|
2012-11-08 18:49:54 +01:00
|
|
|
|
val clusterSample = Seq(Test.scalatest, sigar)
|
2012-09-22 09:16:05 +02:00
|
|
|
|
|
2013-11-19 15:53:40 +01:00
|
|
|
|
val contrib = Seq(Test.junitIntf, Test.commonsIo)
|
2012-09-27 15:57:46 +02:00
|
|
|
|
|
2012-09-20 21:50:35 +02:00
|
|
|
|
val multiNodeSample = Seq(Test.scalatest)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
}
|