From 2e248e4b49c8a7a62d723eb96d2da128d4c9f52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bone=CC=81r?= Date: Tue, 15 May 2012 09:19:02 +0200 Subject: [PATCH] Removed code for tutorial, already removed in docs since duplicate in Typesafe/Akka getting started guide and template --- .gitignore | 4 +- akka-tutorials/akka-tutorial-first/README | 7 - akka-tutorials/akka-tutorial-first/pom.xml | 43 ---- .../project/TutorialBuild.scala | 22 -- .../project/build.properties | 1 - .../java/akka/tutorial/first/java/Pi.java | 197 ------------------ .../src/main/resources/application.conf | 7 - .../scala/akka/tutorial/first/scala/Pi.scala | 110 ---------- .../src/test/scala/WorkerSpec.scala | 31 --- 9 files changed, 1 insertion(+), 421 deletions(-) delete mode 100644 akka-tutorials/akka-tutorial-first/README delete mode 100644 akka-tutorials/akka-tutorial-first/pom.xml delete mode 100644 akka-tutorials/akka-tutorial-first/project/TutorialBuild.scala delete mode 100644 akka-tutorials/akka-tutorial-first/project/build.properties delete mode 100644 akka-tutorials/akka-tutorial-first/src/main/java/akka/tutorial/first/java/Pi.java delete mode 100644 akka-tutorials/akka-tutorial-first/src/main/resources/application.conf delete mode 100644 akka-tutorials/akka-tutorial-first/src/main/scala/akka/tutorial/first/scala/Pi.scala delete mode 100644 akka-tutorials/akka-tutorial-first/src/test/scala/WorkerSpec.scala diff --git a/.gitignore b/.gitignore index 03aba97ee2..dfeca38166 100755 --- a/.gitignore +++ b/.gitignore @@ -50,8 +50,6 @@ multiverse.log .*.swp akka-docs/_build/ *.pyc -akka-tutorials/akka-tutorial-first/project/boot/ -akka-tutorials/akka-tutorial-first/project/plugins/project/ akka-docs/exts/ _akka_cluster/ Makefile @@ -65,4 +63,4 @@ worker*.log mongoDB/ redis/ beanstalk/ -.scalastyle \ No newline at end of file +.scalastyle diff --git a/akka-tutorials/akka-tutorial-first/README b/akka-tutorials/akka-tutorial-first/README deleted file mode 100644 index f4b42f631f..0000000000 --- a/akka-tutorials/akka-tutorial-first/README +++ /dev/null @@ -1,7 +0,0 @@ -================ - First Tutorial -================ - -This is the source code for the first tutorial. - -See the Akka Documentation for information about this tutorial. diff --git a/akka-tutorials/akka-tutorial-first/pom.xml b/akka-tutorials/akka-tutorial-first/pom.xml deleted file mode 100644 index 01000a5896..0000000000 --- a/akka-tutorials/akka-tutorial-first/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - akka-tutorial-first-java - akka.tutorial.first.java - akka-tutorial-first-java - jar - 2.1-SNAPSHOT - http://akka.io - - - - com.typesafe.akka - akka-actor - 2.1-SNAPSHOT - - - - - - Akka - Akka Maven2 Repository - http://akka.io/repository/ - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - - diff --git a/akka-tutorials/akka-tutorial-first/project/TutorialBuild.scala b/akka-tutorials/akka-tutorial-first/project/TutorialBuild.scala deleted file mode 100644 index d468b69324..0000000000 --- a/akka-tutorials/akka-tutorial-first/project/TutorialBuild.scala +++ /dev/null @@ -1,22 +0,0 @@ -import sbt._ -import Keys._ - -object TutorialBuild extends Build { - lazy val buildSettings = Seq( - organization := "com.typesafe.akka", - version := "2.1-SNAPSHOT", - scalaVersion := "2.9.1" - ) - - lazy val akka = Project( - id = "akka-tutorial-first", - base = file("."), - settings = Defaults.defaultSettings ++ Seq( - libraryDependencies ++= Seq( - "com.typesafe.akka" % "akka-actor" % "2.1-SNAPSHOT", - "junit" % "junit" % "4.5" % "test", - "org.scalatest" % "scalatest_2.9.0" % "1.6.1" % "test", - "com.typesafe.akka" % "akka-testkit" % "2.1-SNAPSHOT" % "test") - ) - ) -} diff --git a/akka-tutorials/akka-tutorial-first/project/build.properties b/akka-tutorials/akka-tutorial-first/project/build.properties deleted file mode 100644 index c6158f7be4..0000000000 --- a/akka-tutorials/akka-tutorial-first/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=0.11.0 \ No newline at end of file diff --git a/akka-tutorials/akka-tutorial-first/src/main/java/akka/tutorial/first/java/Pi.java b/akka-tutorials/akka-tutorial-first/src/main/java/akka/tutorial/first/java/Pi.java deleted file mode 100644 index 2eaddcd40c..0000000000 --- a/akka-tutorials/akka-tutorial-first/src/main/java/akka/tutorial/first/java/Pi.java +++ /dev/null @@ -1,197 +0,0 @@ -/** - * Copyright (C) 2009-2012 Typesafe Inc. - */ - -package akka.tutorial.first.java; - -//#imports - -import akka.actor.ActorRef; -import akka.actor.ActorSystem; -import akka.actor.Props; -import akka.actor.UntypedActor; -import akka.actor.UntypedActorFactory; -import akka.routing.RoundRobinRouter; -import akka.util.Duration; -import java.util.concurrent.TimeUnit; - -//#imports - -//#app -public class Pi { - - public static void main(String[] args) { - Pi pi = new Pi(); - pi.calculate(4, 10000, 10000); - } - - //#actors-and-messages - //#messages - static class Calculate { - } - - static class Work { - private final int start; - private final int nrOfElements; - - public Work(int start, int nrOfElements) { - this.start = start; - this.nrOfElements = nrOfElements; - } - - public int getStart() { - return start; - } - - public int getNrOfElements() { - return nrOfElements; - } - } - - static class Result { - private final double value; - - public Result(double value) { - this.value = value; - } - - public double getValue() { - return value; - } - } - - static class PiApproximation { - private final double pi; - private final Duration duration; - - public PiApproximation(double pi, Duration duration) { - this.pi = pi; - this.duration = duration; - } - - public double getPi() { - return pi; - } - - public Duration getDuration() { - return duration; - } - } - - //#messages - - //#worker - public static class Worker extends UntypedActor { - - //#calculatePiFor - private double calculatePiFor(int start, int nrOfElements) { - double acc = 0.0; - for (int i = start * nrOfElements; i <= ((start + 1) * nrOfElements - 1); i++) { - acc += 4.0 * (1 - (i % 2) * 2) / (2 * i + 1); - } - return acc; - } - - //#calculatePiFor - - public void onReceive(Object message) { - if (message instanceof Work) { - Work work = (Work) message; - double result = calculatePiFor(work.getStart(), work.getNrOfElements()); - getSender().tell(new Result(result), getSelf()); - } else { - unhandled(message); - } - } - } - - //#worker - - //#master - public static class Master extends UntypedActor { - private final int nrOfMessages; - private final int nrOfElements; - - private double pi; - private int nrOfResults; - private final long start = System.currentTimeMillis(); - - private final ActorRef listener; - private final ActorRef workerRouter; - - public Master(final int nrOfWorkers, int nrOfMessages, int nrOfElements, ActorRef listener) { - this.nrOfMessages = nrOfMessages; - this.nrOfElements = nrOfElements; - this.listener = listener; - - //#create-router - workerRouter = this.getContext().actorOf(new Props(Worker.class).withRouter(new RoundRobinRouter(nrOfWorkers)), - "workerRouter"); - //#create-router - } - - //#master-receive - public void onReceive(Object message) { - //#handle-messages - if (message instanceof Calculate) { - for (int start = 0; start < nrOfMessages; start++) { - workerRouter.tell(new Work(start, nrOfElements), getSelf()); - } - } else if (message instanceof Result) { - Result result = (Result) message; - pi += result.getValue(); - nrOfResults += 1; - if (nrOfResults == nrOfMessages) { - // Send the result to the listener - Duration duration = Duration.create(System.currentTimeMillis() - start, TimeUnit.MILLISECONDS); - listener.tell(new PiApproximation(pi, duration), getSelf()); - // Stops this actor and all its supervised children - getContext().stop(getSelf()); - } - } else { - unhandled(message); - } - //#handle-messages - } - //#master-receive - } - - //#master - - //#result-listener - public static class Listener extends UntypedActor { - public void onReceive(Object message) { - if (message instanceof PiApproximation) { - PiApproximation approximation = (PiApproximation) message; - System.out.println(String.format("\n\tPi approximation: \t\t%s\n\tCalculation time: \t%s", - approximation.getPi(), approximation.getDuration())); - getContext().system().shutdown(); - } else { - unhandled(message); - } - } - } - - //#result-listener - //#actors-and-messages - - public void calculate(final int nrOfWorkers, final int nrOfElements, final int nrOfMessages) { - // Create an Akka system - ActorSystem system = ActorSystem.create("PiSystem"); - - // create the result listener, which will print the result and shutdown the system - final ActorRef listener = system.actorOf(new Props(Listener.class), "listener"); - - // create the master - ActorRef master = system.actorOf(new Props(new UntypedActorFactory() { - public UntypedActor create() { - return new Master(nrOfWorkers, nrOfMessages, nrOfElements, listener); - } - }), "master"); - - // start the calculation - master.tell(new Calculate()); - - } -} -//#app diff --git a/akka-tutorials/akka-tutorial-first/src/main/resources/application.conf b/akka-tutorials/akka-tutorial-first/src/main/resources/application.conf deleted file mode 100644 index 0a2509357e..0000000000 --- a/akka-tutorials/akka-tutorial-first/src/main/resources/application.conf +++ /dev/null @@ -1,7 +0,0 @@ -akka.actor.deployment { - /master/workerRouter { - # Uncomment the following two lines to change the calculation to use 10 workers instead of 4: - #router = round-robin - #nr-of-instances = 10 - } -} diff --git a/akka-tutorials/akka-tutorial-first/src/main/scala/akka/tutorial/first/scala/Pi.scala b/akka-tutorials/akka-tutorial-first/src/main/scala/akka/tutorial/first/scala/Pi.scala deleted file mode 100644 index 94fb83bbd3..0000000000 --- a/akka-tutorials/akka-tutorial-first/src/main/scala/akka/tutorial/first/scala/Pi.scala +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Copyright (C) 2009-2012 Typesafe Inc. - */ -package akka.tutorial.first.scala - -//#imports -import akka.actor._ -import akka.routing.RoundRobinRouter -import akka.util.Duration -import akka.util.duration._ -//#imports - -//#app -object Pi extends App { - - calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000) - - //#actors-and-messages - //#messages - sealed trait PiMessage - case object Calculate extends PiMessage - case class Work(start: Int, nrOfElements: Int) extends PiMessage - case class Result(value: Double) extends PiMessage - case class PiApproximation(pi: Double, duration: Duration) - //#messages - - //#worker - class Worker extends Actor { - - //#calculatePiFor - def calculatePiFor(start: Int, nrOfElements: Int): Double = { - var acc = 0.0 - for (i ← start until (start + nrOfElements)) - acc += 4.0 * (1 - (i % 2) * 2) / (2 * i + 1) - acc - } - //#calculatePiFor - - def receive = { - case Work(start, nrOfElements) ⇒ - sender ! Result(calculatePiFor(start, nrOfElements)) // perform the work - } - } - //#worker - - //#master - class Master(nrOfWorkers: Int, nrOfMessages: Int, nrOfElements: Int, listener: ActorRef) - extends Actor { - - var pi: Double = _ - var nrOfResults: Int = _ - val start: Long = System.currentTimeMillis() - - //#create-router - val workerRouter = context.actorOf( - Props[Worker].withRouter(RoundRobinRouter(nrOfWorkers)), name = "workerRouter") - //#create-router - - //#master-receive - def receive = { - //#handle-messages - case Calculate ⇒ - for (i ← 0 until nrOfMessages) workerRouter ! Work(i * nrOfElements, nrOfElements) - case Result(value) ⇒ - pi += value - nrOfResults += 1 - if (nrOfResults == nrOfMessages) { - // Send the result to the listener - listener ! PiApproximation(pi, duration = (System.currentTimeMillis() - start).millis) - // Stops this actor and all its supervised children - context.stop(self) - } - //#handle-messages - } - //#master-receive - - } - //#master - - //#result-listener - class Listener extends Actor { - def receive = { - case PiApproximation(pi, duration) ⇒ - println("\n\tPi approximation: \t\t%s\n\tCalculation time: \t%s" - .format(pi, duration)) - context.system.shutdown() - } - } - //#result-listener - - //#actors-and-messages - - def calculate(nrOfWorkers: Int, nrOfElements: Int, nrOfMessages: Int) { - // Create an Akka system - val system = ActorSystem("PiSystem") - - // create the result listener, which will print the result and shutdown the system - val listener = system.actorOf(Props[Listener], name = "listener") - - // create the master - val master = system.actorOf(Props(new Master( - nrOfWorkers, nrOfMessages, nrOfElements, listener)), - name = "master") - - // start the calculation - master ! Calculate - - } -} -//#app diff --git a/akka-tutorials/akka-tutorial-first/src/test/scala/WorkerSpec.scala b/akka-tutorials/akka-tutorial-first/src/test/scala/WorkerSpec.scala deleted file mode 100644 index 86d0715d49..0000000000 --- a/akka-tutorials/akka-tutorial-first/src/test/scala/WorkerSpec.scala +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright (C) 2009-2012 Typesafe Inc. - */ -package akka.tutorial.first.scala - -import org.junit.runner.RunWith -import org.scalatest.matchers.MustMatchers -import org.scalatest.BeforeAndAfterAll -import org.scalatest.WordSpec -import akka.testkit.TestActorRef -import akka.tutorial.first.scala.Pi.Worker -import akka.actor.ActorSystem - -@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner]) -class WorkerSpec extends WordSpec with MustMatchers with BeforeAndAfterAll { - - implicit val system = ActorSystem() - - override def afterAll { - system.shutdown() - } - - "Worker" must { - "calculate pi correctly" in { - val testActor = TestActorRef[Worker] - val actor = testActor.underlyingActor - actor.calculatePiFor(0, 0) must equal(0.0) - actor.calculatePiFor(1, 1) must be(-1.3333333333333333 plusOrMinus 0.0000000001) - } - } -}