From ab40e0e7f35f97390d180b49d556ee36aac4af18 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Tue, 29 Oct 2013 08:41:14 -0300 Subject: reorganization of projects --- .../main/scala/test/SimpleRequestProcessor.scala | 4 ++ kamon-metrics/src/main/scala/kamon/Metrics.scala | 7 +++ .../test/scala/kamon/MailboxSizeMetricsSpec.scala | 12 ++++ project/AspectJ.scala | 14 ++--- project/Build.scala | 66 ++++++++++++++++++---- project/Dependencies.scala | 21 +++---- project/NewRelic.scala | 5 +- 7 files changed, 95 insertions(+), 34 deletions(-) create mode 100644 kamon-metrics/src/main/scala/kamon/Metrics.scala create mode 100644 kamon-metrics/src/test/scala/kamon/MailboxSizeMetricsSpec.scala diff --git a/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala b/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala index b1727d2b..da3c6c6a 100644 --- a/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala +++ b/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala @@ -16,6 +16,10 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil implicit val system = ActorSystem("test") import system.dispatcher + val act = system.actorOf(Props(new Actor { + def receive: Actor.Receive = { case any => sender ! any } + }), "com.despegar-2:[]s-w@&,*") + implicit val timeout = Timeout(30 seconds) val pipeline = sendReceive diff --git a/kamon-metrics/src/main/scala/kamon/Metrics.scala b/kamon-metrics/src/main/scala/kamon/Metrics.scala new file mode 100644 index 00000000..2b0e94bd --- /dev/null +++ b/kamon-metrics/src/main/scala/kamon/Metrics.scala @@ -0,0 +1,7 @@ +package kamon + +import com.codahale.metrics.MetricRegistry + +object Metrics { + val registry = new MetricRegistry +} diff --git a/kamon-metrics/src/test/scala/kamon/MailboxSizeMetricsSpec.scala b/kamon-metrics/src/test/scala/kamon/MailboxSizeMetricsSpec.scala new file mode 100644 index 00000000..7cae30f1 --- /dev/null +++ b/kamon-metrics/src/test/scala/kamon/MailboxSizeMetricsSpec.scala @@ -0,0 +1,12 @@ +package kamon + +import org.scalatest.WordSpec + +class MailboxSizeMetricsSpec extends WordSpec { + + "the mailbox size metrics instrumentation" should { + "register a counter for mailbox size upon actor creation" in { + + } + } +} diff --git a/project/AspectJ.scala b/project/AspectJ.scala index b6c5037a..a1cc27e0 100644 --- a/project/AspectJ.scala +++ b/project/AspectJ.scala @@ -7,15 +7,9 @@ import com.typesafe.sbt.SbtAspectj.AspectjKeys.{ binaries, compileOnly, inputs, object AspectJ { lazy val aspectJSettings = aspectjSettings ++ Seq( - compileOnly in Aspectj := true, - fork in Test := true, - javaOptions in Test <++= weaverOptions in Aspectj, - fork in run := true, - javaOptions in run <++= weaverOptions in Aspectj, - - lintProperties in Aspectj += "invalidAbsoluteTypeName = ignore" - - // Add this line if we need to include some .aj aspects again in the project. - // products in Compile <<= products in Aspectj + compileOnly in Aspectj := true, + fork in (Test, run) := true, + javaOptions in (Test, run) <++= weaverOptions in Aspectj, + lintProperties in Aspectj += "invalidAbsoluteTypeName = ignore" ) } \ No newline at end of file diff --git a/project/Build.scala b/project/Build.scala index 23880c33..7374d195 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -7,29 +7,73 @@ object Build extends Build { import Settings._ import Dependencies._ + + lazy val root = Project("root", file(".")) - .aggregate(kamonCore, kamonDashboard) + .aggregate(kamonCore, kamonTrace, kamonMetrics, kamonSpray, kamonNewrelic, kamonPlayground, kamonDashboard) .settings(basicSettings: _*) - .settings( - publish := (), - publishLocal := () - ) + .settings(noPublishing: _*) lazy val kamonCore = Project("kamon-core", file("kamon-core")) .settings(basicSettings: _*) - .settings(revolverSettings: _*) .settings(aspectJSettings: _*) - //.settings(newrelicSettings: _*) + .settings( + libraryDependencies ++= + compile(akkaActor, aspectJ, metrics) ++ + test(scalatest, akkaTestKit)) + + lazy val kamonTrace = Project("kamon-trace", file("kamon-trace")) + .settings(basicSettings: _*) + .settings(aspectJSettings: _*) .settings( libraryDependencies ++= - compile(akkaActor, akkaAgent, aspectJ, aspectJWeaver, metrics, newrelic, sprayJson) ++ - compile(sprayCan, sprayClient, sprayRouting, logback, akkaSlf4j) ++ - test(scalatest, akkaTestKit, sprayTestkit, logback, akkaSlf4j)) - //.dependsOn(kamonDashboard) + compile(akkaActor, aspectJ) ++ + test(scalatest, akkaTestKit, sprayTestkit)) + + lazy val kamonMetrics = Project("kamon-metrics", file("kamon-metrics")) + .settings(basicSettings: _*) + .settings(aspectJSettings: _*) + .settings( + libraryDependencies ++= + compile(akkaActor, aspectJ, newrelic) ++ + test(scalatest, akkaTestKit, sprayTestkit)) + + + lazy val kamonSpray = Project("kamon-spray", file("kamon-spray")) + .settings(basicSettings: _*) + .settings(aspectJSettings: _*) + .settings( + libraryDependencies ++= + compile(akkaActor, aspectJ, sprayCan, sprayClient, sprayRouting) ++ + test(scalatest, akkaTestKit, sprayTestkit)) + + + lazy val kamonNewrelic = Project("kamon-newrelic", file("kamon-newrelic")) + .settings(basicSettings: _*) + .settings(aspectJSettings: _*) + .settings( + libraryDependencies ++= + compile(aspectJ, sprayCan, sprayClient, sprayRouting, newrelic) ++ + test(scalatest, akkaTestKit, sprayTestkit)) + + lazy val kamonPlayground = Project("kamon-playground", file("kamon-playground")) + .settings(basicSettings: _*) + .settings(revolverSettings: _*) + .settings(newrelicSettings: _*) + .settings(noPublishing: _*) + .settings( + libraryDependencies ++= + compile(akkaActor, akkaSlf4j, sprayCan, sprayClient, sprayRouting, logback)) + .dependsOn(kamonCore) + + lazy val kamonDashboard = Project("kamon-dashboard", file("kamon-dashboard")) .settings(basicSettings: _*) .settings(libraryDependencies ++= compile(akkaActor, akkaSlf4j, sprayRouting, sprayCan, sprayJson)) .dependsOn(kamonCore) + + + val noPublishing = Seq(publish := (), publishLocal := ()) } \ No newline at end of file diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 90336c02..55736c76 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -10,22 +10,19 @@ object Dependencies { val sprayVersion = "1.2-RC1" val akkaVersion = "2.2.3" - val sprayCan = "io.spray" % "spray-can" % sprayVersion - val sprayRouting = "io.spray" % "spray-routing" % sprayVersion - val sprayTestkit = "io.spray" % "spray-testkit" % sprayVersion - val sprayClient = "io.spray" % "spray-client" % sprayVersion val sprayJson = "io.spray" %% "spray-json" % "1.2.5" - val scalaReflect = "org.scala-lang" % "scala-reflect" % "2.10.1" + val scalatest = "org.scalatest" % "scalatest_2.10" % "2.0.RC2" + val logback = "ch.qos.logback" % "logback-classic" % "1.0.13" + val aspectJ = "org.aspectj" % "aspectjrt" % "1.7.2" + val metrics = "com.codahale.metrics" % "metrics-core" % "3.0.1" + val newrelic = "com.newrelic.agent.java" % "newrelic-api" % "3.1.0" val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion - val akkaAgent = "com.typesafe.akka" %% "akka-agent" % akkaVersion val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % akkaVersion val akkaTestKit = "com.typesafe.akka" %% "akka-testkit" % akkaVersion - val scalatest = "org.scalatest" % "scalatest_2.10" % "2.0.M6-SNAP22" - val logback = "ch.qos.logback" % "logback-classic" % "1.0.13" - val aspectJ = "org.aspectj" % "aspectjrt" % "1.7.2" - val aspectJWeaver = "org.aspectj" % "aspectjweaver" % "1.7.2" - val metrics = "com.codahale.metrics" % "metrics-core" % "3.0.0" - val newrelic = "com.newrelic.agent.java" % "newrelic-api" % "3.0.1" + val sprayCan = "io.spray" % "spray-can" % sprayVersion + val sprayRouting = "io.spray" % "spray-routing" % sprayVersion + val sprayTestkit = "io.spray" % "spray-testkit" % sprayVersion + val sprayClient = "io.spray" % "spray-client" % sprayVersion def compile (deps: ModuleID*): Seq[ModuleID] = deps map (_ % "compile") diff --git a/project/NewRelic.scala b/project/NewRelic.scala index 2fc590cd..8841244d 100644 --- a/project/NewRelic.scala +++ b/project/NewRelic.scala @@ -1,3 +1,4 @@ +import sbt._ import sbt.Keys._ import com.ivantopo.sbt.newrelic.SbtNewrelic import com.ivantopo.sbt.newrelic.SbtNewrelic.newrelic @@ -8,6 +9,8 @@ object NewRelic { lazy val newrelicSettings = SbtNewrelic.newrelicSettings ++ Seq( javaOptions in run <++= jvmOptions in newrelic, - newrelicVersion in newrelic := "3.0.1" + fork in run := true, + configFile in newrelic := file("~/.newrelic/kamon_playground.yml"), + newrelicVersion in newrelic := "3.1.0" ) } -- cgit v1.2.3