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
|
|
|
|
|
|
|
2014-07-08 18:30:15 +02:00
|
|
|
|
import java.io.{FileInputStream, InputStreamReader}
|
2012-12-18 12:10:59 +01:00
|
|
|
|
import java.util.Properties
|
2014-07-08 18:30:15 +02:00
|
|
|
|
|
|
|
|
|
|
import akka.Formatting.docFormatSettings
|
|
|
|
|
|
import akka.MultiNode.multiJvmSettings
|
|
|
|
|
|
import akka.TestExtras.{GraphiteBuildEvents, JUnitFileReporting, StatsDMetrics}
|
|
|
|
|
|
import akka.Unidoc.{scaladocSettings, unidocSettings}
|
|
|
|
|
|
import com.typesafe.sbt.S3Plugin.{S3, s3Settings}
|
|
|
|
|
|
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.{MultiJvm, extraOptions}
|
2014-05-07 14:49:35 +02:00
|
|
|
|
import com.typesafe.sbt.site.SphinxSupport
|
|
|
|
|
|
import com.typesafe.sbt.site.SphinxSupport.Sphinx
|
2014-07-08 18:30:15 +02:00
|
|
|
|
import com.typesafe.tools.mima.plugin.MimaKeys.{binaryIssueFilters, previousArtifact, reportBinaryIssues}
|
|
|
|
|
|
import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings
|
|
|
|
|
|
import sbt.Keys._
|
|
|
|
|
|
import sbt._
|
|
|
|
|
|
import sbtunidoc.Plugin.UnidocKeys.unidoc
|
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
|
|
|
|
|
2011-07-08 18:01:19 +12:00
|
|
|
|
lazy val buildSettings = Seq(
|
2011-10-06 15:44:15 +02:00
|
|
|
|
organization := "com.typesafe.akka",
|
2014-03-07 13:43:05 +01:00
|
|
|
|
version := "2.4-SNAPSHOT",
|
2014-09-05 11:13:49 +02:00
|
|
|
|
scalaVersion := Dependencies.Versions.scalaVersion
|
2011-07-08 18:01:19 +12:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
2014-05-12 16:19:29 +02:00
|
|
|
|
lazy val root = Project(
|
2011-07-04 19:16:43 +12:00
|
|
|
|
id = "akka",
|
|
|
|
|
|
base = file("."),
|
2014-05-07 14:49:35 +02:00
|
|
|
|
settings = parentSettings ++ Release.settings ++ unidocSettings ++ Publish.versionSettings ++
|
|
|
|
|
|
SphinxDoc.akkaSettings ++ Dist.settings ++ s3Settings ++ mimaSettings ++ scaladocSettings ++
|
|
|
|
|
|
GraphiteBuildEvents.settings ++ Protobuf.settings ++ Unidoc.settings(Seq(samples), Seq(remoteTests)) ++ Seq(
|
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-22 12:48:10 +01:00
|
|
|
|
Dist.distExclude := Seq(actorTests.id, docs.id, samples.id, osgi.id),
|
2013-08-21 09:22:46 +02:00
|
|
|
|
|
|
|
|
|
|
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"
|
2014-04-25 16:32:43 +02:00
|
|
|
|
val archivesPathFinder = (downloads * ("*" + v + ".zip")) +++ (downloads * ("*" + v + ".tgz"))
|
2013-12-04 12:12:38 +01:00
|
|
|
|
archivesPathFinder.get.map(file => (file -> ("akka/" + file.getName)))
|
2014-01-21 12:47:43 +01:00
|
|
|
|
},
|
2014-05-07 14:49:35 +02:00
|
|
|
|
|
2014-04-25 16:32:43 +02:00
|
|
|
|
validatePullRequest <<= (unidoc in Compile, SphinxSupport.generate in Sphinx in docs) map { (_, _) => }
|
2011-07-08 10:20:10 +12:00
|
|
|
|
),
|
2014-03-12 11:10:55 +01:00
|
|
|
|
aggregate = Seq(actor, testkit, actorTests, remote, remoteTests, camel, cluster, slf4j, agent,
|
2014-07-08 18:30:15 +02:00
|
|
|
|
persistence, persistenceTck, 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-03-12 11:06:35 +01:00
|
|
|
|
// samples don't work with dbuild right now
|
2014-02-14 12:06:41 +01:00
|
|
|
|
aggregate = Seq(actor, testkit, actorTests, remote, remoteTests, camel, cluster, slf4j,
|
2014-07-08 18:30:15 +02:00
|
|
|
|
persistence, persistenceTck, kernel, osgi, contrib, multiNodeTestkit)
|
2013-12-03 09:18:26 +01:00
|
|
|
|
)
|
|
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
lazy val actor = Project(
|
|
|
|
|
|
id = "akka-actor",
|
2014-05-12 16:19:29 +02:00
|
|
|
|
base = file("akka-actor")
|
2013-03-05 19:10:45 +01:00
|
|
|
|
)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
|
|
|
|
|
|
lazy val testkit = Project(
|
|
|
|
|
|
id = "akka-testkit",
|
|
|
|
|
|
base = file("akka-testkit"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor)
|
2011-07-04 19:16:43 +12:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val actorTests = Project(
|
|
|
|
|
|
id = "akka-actor-tests",
|
|
|
|
|
|
base = file("akka-actor-tests"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(testkit % "compile;test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, actorTests % "test->test", testkit % "test->test")
|
2013-02-10 16:04:59 -05:00
|
|
|
|
)
|
|
|
|
|
|
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(remote, testkit)
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actorTests % "test->test", multiNodeTestkit)
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(remote, remoteTests % "test->test" , testkit % "test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test")
|
2011-12-19 15:46:06 +13:00
|
|
|
|
)
|
|
|
|
|
|
|
2013-09-14 14:19:18 +02:00
|
|
|
|
lazy val persistence = Project(
|
|
|
|
|
|
id = "akka-persistence-experimental",
|
|
|
|
|
|
base = file("akka-persistence"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, remote % "test->test", testkit % "test->test")
|
2013-09-14 14:19:18 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2014-07-08 18:30:15 +02:00
|
|
|
|
lazy val persistenceTck = Project(
|
|
|
|
|
|
id = "akka-persistence-experimental-tck",
|
|
|
|
|
|
base = file("akka-persistence-tck"),
|
|
|
|
|
|
dependencies = Seq(persistence % "compile;test->test", testkit % "compile;test->test")
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2012-01-14 03:16:39 +01:00
|
|
|
|
lazy val zeroMQ = Project(
|
|
|
|
|
|
id = "akka-zeromq",
|
|
|
|
|
|
base = file("akka-zeromq"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, testkit % "test;test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, testkit % "test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor, slf4j, testkit % "test->test")
|
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"),
|
2014-05-12 16:19:29 +02:00
|
|
|
|
dependencies = Seq(actor)
|
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,
|
2014-04-25 16:32:43 +02:00
|
|
|
|
aggregate = Seq(camelSampleJava, camelSampleScala, mainSampleJava, mainSampleScala,
|
2013-11-29 16:27:23 +01:00
|
|
|
|
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)
|
|
|
|
|
|
)
|
2014-04-25 16:32:43 +02:00
|
|
|
|
|
2013-11-15 16:28:14 +01:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2014-04-25 16:32:43 +02:00
|
|
|
|
|
2013-11-15 11:53:21 +01:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2014-04-25 16:32:43 +02:00
|
|
|
|
|
2013-11-26 09:17:50 +01:00
|
|
|
|
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
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2014-05-12 16:19:29 +02:00
|
|
|
|
lazy val docs = Project(
|
|
|
|
|
|
id = "akka-docs",
|
|
|
|
|
|
base = file("akka-docs"),
|
|
|
|
|
|
dependencies = Seq(actor, testkit % "test->test",
|
|
|
|
|
|
remote % "compile;test->test", cluster, slf4j, agent, zeroMQ, camel, osgi,
|
2014-07-08 18:30:15 +02:00
|
|
|
|
persistence % "compile;test->test", persistenceTck)
|
2014-05-12 16:19:29 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
lazy val contrib = Project(
|
|
|
|
|
|
id = "akka-contrib",
|
|
|
|
|
|
base = file("akka-contrib"),
|
|
|
|
|
|
dependencies = Seq(remote, remoteTests % "test->test", cluster, persistence)
|
|
|
|
|
|
) configs (MultiJvm)
|
|
|
|
|
|
|
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"),
|
2014-08-29 14:25:30 +02:00
|
|
|
|
settings = 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
|
|
|
|
|
|
}
|
2014-08-29 14:25:30 +02:00
|
|
|
|
) ++ multiJvmSettings
|
2013-11-29 16:27:23 +01:00
|
|
|
|
) configs (MultiJvm)
|
2014-04-25 16:32:43 +02:00
|
|
|
|
|
2013-11-29 16:27:23 +01:00
|
|
|
|
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"),
|
2014-08-29 14:25:30 +02:00
|
|
|
|
settings = 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
|
|
|
|
}
|
2014-08-29 14:25:30 +02:00
|
|
|
|
) ++ multiJvmSettings
|
2012-09-20 21:50:35 +02:00
|
|
|
|
) configs (MultiJvm)
|
2014-04-25 16:32:43 +02: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"),
|
2014-08-29 14:25:30 +02:00
|
|
|
|
settings = 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
|
|
|
|
}
|
2014-08-29 14:25:30 +02:00
|
|
|
|
) ++ multiJvmSettings
|
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,
|
2014-03-07 13:15:17 +01:00
|
|
|
|
// allow publishLocal/publishM2 to overwrite
|
|
|
|
|
|
isSnapshot := true,
|
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 <<=
|
2014-04-25 16:32:43 +02:00
|
|
|
|
(publishM2 in actor, publishM2 in testkit, publishM2 in remote, publishM2 in cluster, publishM2 in osgi,
|
2014-01-22 12:48:10 +01:00
|
|
|
|
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-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(
|
2014-08-29 14:25:30 +02:00
|
|
|
|
publishArtifact := false,
|
2013-08-27 16:17:22 +02:00
|
|
|
|
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
|
|
|
|
|
|
)
|
|
|
|
|
|
|
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
|
2014-02-28 10:12:29 +01:00
|
|
|
|
} ++ Seq(
|
|
|
|
|
|
pomIncludeRepository := (_ => false) // do not leak internal repositories during staging
|
|
|
|
|
|
)
|
2013-12-03 09:18:26 +01:00
|
|
|
|
|
2014-05-07 14:49:35 +02:00
|
|
|
|
lazy val defaultSettings = baseSettings ++ mimaSettings ++ resolverSettings ++ TestExtras.Filter.settings ++
|
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"),
|
2014-03-07 13:15:17 +01:00
|
|
|
|
incOptions := incOptions.value.withNameHashing(true),
|
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
|
2014-08-25 15:49:28 +02:00
|
|
|
|
|def startSystem(remoting: Boolean = false) { system = ActorSystem("repl", if(remoting) remoteConfig else config); println("don’t forget to system.terminate()!") }
|
2013-03-06 09:44:34 +01:00
|
|
|
|
|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-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-03-07 13:43:05 +01:00
|
|
|
|
testListeners in (Test, test) := Seq(TestLogger(streams.value.log, {_ => streams.value.log }, logBuffered.value)),
|
2014-04-25 16:32:43 +02:00
|
|
|
|
|
2014-05-12 16:19:29 +02:00
|
|
|
|
// -v Log "test run started" / "test started" / "test run finished" events on log level "info" instead of "debug".
|
|
|
|
|
|
// -a Show stack traces and exception class name for AssertionErrors.
|
|
|
|
|
|
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-a"),
|
|
|
|
|
|
|
2014-03-07 13:43:05 +01:00
|
|
|
|
validatePullRequestTask,
|
2014-05-27 08:11:29 +02:00
|
|
|
|
validatePullRequest <<= validatePullRequest.dependsOn(test in Test),
|
2014-03-07 13:43:05 +01:00
|
|
|
|
// add reportBinaryIssues to validatePullRequest on minor version maintenance branch
|
|
|
|
|
|
validatePullRequest <<= validatePullRequest.dependsOn(reportBinaryIssues)
|
2014-05-05 16:45:48 +02:00
|
|
|
|
) ++
|
|
|
|
|
|
mavenLocalResolverSettings ++
|
|
|
|
|
|
JUnitFileReporting.settings ++ StatsDMetrics.settings
|
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-03-07 13:43:05 +01:00
|
|
|
|
// the tasks that to run for validation is defined in defaultSettings
|
|
|
|
|
|
val validatePullRequestTask = validatePullRequest := ()
|
2013-08-27 16:17:22 +02:00
|
|
|
|
|
2014-03-07 13:43:05 +01:00
|
|
|
|
lazy val mimaIgnoredProblems = {
|
2014-05-21 01:35:21 +02:00
|
|
|
|
import com.typesafe.tools.mima.core._
|
|
|
|
|
|
Seq(
|
|
|
|
|
|
// add filters here, see release-2.2 branch
|
2014-03-07 13:43:05 +01:00
|
|
|
|
)
|
|
|
|
|
|
}
|
2012-08-30 16:16:29 +02:00
|
|
|
|
|
2012-05-25 10:02:35 +02:00
|
|
|
|
lazy val mimaSettings = mimaDefaultSettings ++ Seq(
|
|
|
|
|
|
// MiMa
|
2014-03-07 13:43:05 +01:00
|
|
|
|
previousArtifact := None,
|
|
|
|
|
|
binaryIssueFilters ++= mimaIgnoredProblems
|
2012-05-25 10:02:35 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
2014-04-25 16:32:43 +02:00
|
|
|
|
def akkaPreviousArtifact(id: String, organization: String = "com.typesafe.akka", version: String = "2.3.0",
|
2013-08-27 16:17:22 +02:00
|
|
|
|
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
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2011-07-04 19:16:43 +12:00
|
|
|
|
}
|