Update tutorials and include source in the distribution

This commit is contained in:
Peter Vlugter 2011-05-10 16:37:31 +12:00
parent c581e4be28
commit 8dec4bcbc4
18 changed files with 243 additions and 194 deletions

View file

@ -58,39 +58,49 @@ You can test your installation by invoking ``java``::
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326) Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
Downloading and installing Akka Downloading and installing Akka
------------------------------- -------------------------------
To build and run the tutorial sample from the command line, you have to download Akka. If you prefer to use SBT to build and run the sample then you can skip this section and jump to the next one. To build and run the tutorial sample from the command line, you have to download
Akka. If you prefer to use SBT to build and run the sample then you can skip
this section and jump to the next one.
Let's get the ``akka-1.1`` distribution of Akka core (not Akka Modules) from `http://akka.io/downloads <http://akka.io/downloads/>`_. Once you have downloaded the distribution unzip it in the folder you would like to have Akka installed in, in my case I choose to install it in ``/Users/jboner/tools/``, simply by unzipping it to this directory. Let's get the ``akka-actors-1.1.zip`` distribution of Akka from
http://akka.io/downloads/ which includes everything we need for this
tutorial. Once you have downloaded the distribution unzip it in the folder you
would like to have Akka installed in. In my case I choose to install it in
``/Users/jboner/tools/``, simply by unzipping it to this directory.
You need to do one more thing in order to install Akka properly: set the ``AKKA_HOME`` environment variable to the root of the distribution. In my case I'm opening up a shell, navigating down to the distribution, and setting the ``AKKA_HOME`` variable:: You need to do one more thing in order to install Akka properly: set the
``AKKA_HOME`` environment variable to the root of the distribution. In my case
I'm opening up a shell, navigating down to the distribution, and setting the
``AKKA_HOME`` variable::
$ cd /Users/jboner/tools/akka-1.1 $ cd /Users/jboner/tools/akka-actors-1.1
$ export AKKA_HOME=`pwd` $ export AKKA_HOME=`pwd`
$ echo $AKKA_HOME $ echo $AKKA_HOME
/Users/jboner/tools/akka-1.1 /Users/jboner/tools/akka-actors-1.1
The distribution looks like this:: The distribution looks like this::
$ ls -l $ ls -1
total 16944 config
drwxr-xr-x 7 jboner staff 238 Apr 6 11:15 . doc
drwxr-xr-x 28 jboner staff 952 Apr 6 11:16 .. lib
drwxr-xr-x 17 jboner staff 578 Apr 6 11:16 deploy src
drwxr-xr-x 26 jboner staff 884 Apr 6 11:16 dist
drwxr-xr-x 3 jboner staff 102 Apr 6 11:15 lib_managed
-rwxr-xr-x 1 jboner staff 8674105 Apr 6 11:15 scala-library.jar
drwxr-xr-x 4 jboner staff 136 Apr 6 11:16 scripts
- In the ``dist`` directory we have the Akka JARs, including sources and docs. - In the ``config`` directory we have the Akka conf files.
- In the ``lib_managed/compile`` directory we have Akka's dependency JARs. - In the ``doc`` directory we have the documentation, API, doc JARs, and also
- In the ``deploy`` directory we have the sample JARs. the source files for the tutorials.
- In the ``scripts`` directory we have scripts for running Akka. - In the ``lib`` directory we have the Scala and Akka JARs.
- Finally ``scala-library.jar`` is the JAR for the latest Scala distribution that Akka depends on. - In the ``src`` directory we have the source JARs for Akka.
The only JAR we will need for this tutorial (apart from the ``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``dist`` directory. This is a self-contained JAR with zero dependencies and contains everything we need to write a system using Actors.
The only JAR we will need for this tutorial (apart from the
``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``lib/akka``
directory. This is a self-contained JAR with zero dependencies and contains
everything we need to write a system using Actors.
Akka is very modular and has many JARs for containing different features. The core distribution has seven modules: Akka is very modular and has many JARs for containing different features. The core distribution has seven modules:
@ -102,7 +112,10 @@ Akka is very modular and has many JARs for containing different features. The co
- ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener for logging with SLF4J - ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener for logging with SLF4J
- ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors - ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors
We also have Akka Modules containing add-on modules outside the core of Akka. You can download the Akka Modules distribution from TODO. It contains Akka core as well. We will not be needing any modules there today, but for your information the module JARs are these: We also have Akka Modules containing add-on modules outside the core of
Akka. You can download the Akka Modules distribution from TODO. It contains Akka
core as well. We will not be needing any modules there today, but for your
information the module JARs are these:
- ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.) - ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.)
- ``akka-amqp-1.1.jar`` -- AMQP integration - ``akka-amqp-1.1.jar`` -- AMQP integration
@ -112,6 +125,7 @@ We also have Akka Modules containing add-on modules outside the core of Akka. Yo
- ``akka-spring-1.1.jar`` -- Spring framework integration - ``akka-spring-1.1.jar`` -- Spring framework integration
- ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support - ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support
Downloading and installing Maven Downloading and installing Maven
-------------------------------- --------------------------------
@ -178,7 +192,7 @@ We also need to edit the ``pom.xml`` build file. Let's add the dependency we nee
<repository> <repository>
<id>Akka</id> <id>Akka</id>
<name>Akka Maven2 Repository</name> <name>Akka Maven2 Repository</name>
<url>http://www.scalablesolutions.se/akka/repository/</url> <url>http://akka.io/repository/</url>
</repository> </repository>
</repositories> </repositories>
@ -695,35 +709,42 @@ Before we package it up and run it, let's take a look at the full code now, with
} }
} }
Run it as a command line application Run it as a command line application
------------------------------------ ------------------------------------
To build and run the tutorial from the command line, you need to have the Scala library JAR on the classpath. If you have not typed in (or copied) the code for the tutorial as
``$AKKA_HOME/tutorial/akka/tutorial/first/java/Pi.java`` then now is the
time. When that's done open up a shell and step in to the Akka distribution
(``cd $AKKA_HOME``).
Scala can be downloaded from `http://www.scala-lang.org/downloads <http://www.scala-lang.org/downloads>`_. Browse there and download the Scala 2.9.0.RC1 release. If you pick the ``tgz`` or ``zip`` distribution then just unzip it where you want it installed. If you pick the IzPack Installer then double click on it and follow the instructions. First we need to compile the source file. That is done with Java's compiler
``javac``. Our application depends on the ``akka-actor-1.1.jar`` and the
``scala-library.jar`` JAR files, so let's add them to the compiler classpath
when we compile the source::
The ``scala-library.jar`` resides in the ``scala-2.9.0.RC1/lib`` directory. Copy that to your project directory. $ javac -cp lib/scala-library.jar:lib/akka/akka-actor-1.1.jar tutorial/akka/tutorial/first/java/Pi.java
If you have not typed in (or copied) the code for the tutorial as ``$AKKA_HOME/tutorial/akka/tutorial/first/java/Pi.java`` then now is the time. When that's done open up a shell and step in to the Akka distribution (``cd $AKKA_HOME``). When we have compiled the source file we are ready to run the application. This
is done with ``java`` but yet again we need to add the ``akka-actor-1.1.jar``
First we need to compile the source file. That is done with Java's compiler ``javac``. Our application depends on the ``akka-actor-1.1.jar`` and the ``scala-library.jar`` JAR files, so let's add them to the compiler classpath when we compile the source:: and the ``scala-library.jar`` JAR files to the classpath as well as the classes
we compiled ourselves::
$ javac -cp dist/akka-actor-1.1.jar:scala-library.jar tutorial/Pi.scala
When we have compiled the source file we are ready to run the application. This is done with ``java`` but yet again we need to add the ``akka-actor-1.1.jar`` and the ``scala-library.jar`` JAR files to the classpath as well as the classes we compiled ourselves::
$ java \ $ java \
-cp dist/akka-actor-1.1.jar:scala-library.jar:tutorial \ -cp lib/scala-library.jar:lib/akka/akka-actor-1.1.jar:tutorial \
akka.tutorial.java.first.Pi akka.tutorial.java.first.Pi
AKKA_HOME is defined as [/Users/jboner/src/akka-stuff/akka-core] AKKA_HOME is defined as [/Users/jboner/tools/akka-actors-1.1]
loading config from [/Users/jboner/src/akka-stuff/akka-core/config/akka.conf]. loading config from [/Users/jboner/tools/akka-actors-1.1/config/akka.conf].
Pi estimate: 3.1435501812459323 Pi estimate: 3.1435501812459323
Calculation time: 822 millis Calculation time: 822 millis
Yippee! It is working. Yippee! It is working.
If you have not defined the ``AKKA_HOME`` environment variable then Akka can't find the ``akka.conf`` configuration file and will print out a ``Cant load akka.conf`` warning. This is ok since it will then just use the defaults. If you have not defined the ``AKKA_HOME`` environment variable then Akka can't
find the ``akka.conf`` configuration file and will print out a ``Cant load
akka.conf`` warning. This is ok since it will then just use the defaults.
Run it inside Maven Run it inside Maven
------------------- -------------------

View file

@ -43,39 +43,49 @@ You can test your installation by invoking ``java``::
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326) Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
Downloading and installing Akka Downloading and installing Akka
------------------------------- -------------------------------
To build and run the tutorial sample from the command line, you have to download Akka. If you prefer to use SBT to build and run the sample then you can skip this section and jump to the next one. To build and run the tutorial sample from the command line, you have to download
Akka. If you prefer to use SBT to build and run the sample then you can skip
this section and jump to the next one.
Let's get the ``akka-1.1`` distribution of Akka core (not Akka Modules) from `http://akka.io/downloads <http://akka.io/downloads/>`_. Once you have downloaded the distribution unzip it in the folder you would like to have Akka installed in, in my case I choose to install it in ``/Users/jboner/tools/``, simply by unzipping it to this directory. Let's get the ``akka-actors-1.1.zip`` distribution of Akka from
http://akka.io/downloads/ which includes everything we need for this
tutorial. Once you have downloaded the distribution unzip it in the folder you
would like to have Akka installed in. In my case I choose to install it in
``/Users/jboner/tools/``, simply by unzipping it to this directory.
You need to do one more thing in order to install Akka properly: set the ``AKKA_HOME`` environment variable to the root of the distribution. In my case I'm opening up a shell, navigating down to the distribution, and setting the ``AKKA_HOME`` variable:: You need to do one more thing in order to install Akka properly: set the
``AKKA_HOME`` environment variable to the root of the distribution. In my case
I'm opening up a shell, navigating down to the distribution, and setting the
``AKKA_HOME`` variable::
$ cd /Users/jboner/tools/akka-1.1 $ cd /Users/jboner/tools/akka-actors-1.1
$ export AKKA_HOME=`pwd` $ export AKKA_HOME=`pwd`
$ echo $AKKA_HOME $ echo $AKKA_HOME
/Users/jboner/tools/akka-1.1 /Users/jboner/tools/akka-actors-1.1
The distribution looks like this:: The distribution looks like this::
$ ls -l $ ls -1
total 16944 config
drwxr-xr-x 7 jboner staff 238 Apr 6 11:15 . doc
drwxr-xr-x 28 jboner staff 952 Apr 6 11:16 .. lib
drwxr-xr-x 17 jboner staff 578 Apr 6 11:16 deploy src
drwxr-xr-x 26 jboner staff 884 Apr 6 11:16 dist
drwxr-xr-x 3 jboner staff 102 Apr 6 11:15 lib_managed
-rwxr-xr-x 1 jboner staff 8674105 Apr 6 11:15 scala-library.jar
drwxr-xr-x 4 jboner staff 136 Apr 6 11:16 scripts
- In the ``dist`` directory we have the Akka JARs, including sources and docs. - In the ``config`` directory we have the Akka conf files.
- In the ``lib_managed/compile`` directory we have Akka's dependency JARs. - In the ``doc`` directory we have the documentation, API, doc JARs, and also
- In the ``deploy`` directory we have the sample JARs. the source files for the tutorials.
- In the ``scripts`` directory we have scripts for running Akka. - In the ``lib`` directory we have the Scala and Akka JARs.
- Finally ``scala-library.jar`` is the JAR for the latest Scala distribution that Akka depends on. - In the ``src`` directory we have the source JARs for Akka.
The only JAR we will need for this tutorial (apart from the ``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``dist`` directory. This is a self-contained JAR with zero dependencies and contains everything we need to write a system using Actors.
The only JAR we will need for this tutorial (apart from the
``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``lib/akka``
directory. This is a self-contained JAR with zero dependencies and contains
everything we need to write a system using Actors.
Akka is very modular and has many JARs for containing different features. The core distribution has seven modules: Akka is very modular and has many JARs for containing different features. The core distribution has seven modules:
@ -84,10 +94,13 @@ Akka is very modular and has many JARs for containing different features. The co
- ``akka-remote-1.1.jar`` -- Remote Actors - ``akka-remote-1.1.jar`` -- Remote Actors
- ``akka-stm-1.1.jar`` -- STM (Software Transactional Memory), transactors and transactional datastructures - ``akka-stm-1.1.jar`` -- STM (Software Transactional Memory), transactors and transactional datastructures
- ``akka-http-1.1.jar`` -- Akka Mist for continuation-based asynchronous HTTP and also Jersey integration - ``akka-http-1.1.jar`` -- Akka Mist for continuation-based asynchronous HTTP and also Jersey integration
- ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener - ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener for logging with SLF4J
- ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors - ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors
We also have Akka Modules containing add-on modules outside the core of Akka. You can download the Akka Modules distribution from TODO. It contains Akka core as well. We will not be needing any modules there today, but for your information the module JARs are these: We also have Akka Modules containing add-on modules outside the core of
Akka. You can download the Akka Modules distribution from TODO. It contains Akka
core as well. We will not be needing any modules there today, but for your
information the module JARs are these:
- ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.) - ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.)
- ``akka-amqp-1.1.jar`` -- AMQP integration - ``akka-amqp-1.1.jar`` -- AMQP integration
@ -97,6 +110,7 @@ We also have Akka Modules containing add-on modules outside the core of Akka. Yo
- ``akka-spring-1.1.jar`` -- Spring framework integration - ``akka-spring-1.1.jar`` -- Spring framework integration
- ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support - ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support
Downloading and installing the Scala IDE for Eclipse Downloading and installing the Scala IDE for Eclipse
---------------------------------------------------- ----------------------------------------------------

View file

@ -58,39 +58,49 @@ You can test your installation by invoking ``java``::
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326) Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
Downloading and installing Akka Downloading and installing Akka
------------------------------- -------------------------------
To build and run the tutorial sample from the command line, you have to download Akka. If you prefer to use SBT to build and run the sample then you can skip this section and jump to the next one. To build and run the tutorial sample from the command line, you have to download
Akka. If you prefer to use SBT to build and run the sample then you can skip
this section and jump to the next one.
Let's get the ``akka-1.1`` distribution of Akka core (not Akka Modules) from `http://akka.io/downloads <http://akka.io/downloads/>`_. Once you have downloaded the distribution unzip it in the folder you would like to have Akka installed in, in my case I choose to install it in ``/Users/jboner/tools/``, simply by unzipping it to this directory. Let's get the ``akka-actors-1.1.zip`` distribution of Akka from
http://akka.io/downloads/ which includes everything we need for this
tutorial. Once you have downloaded the distribution unzip it in the folder you
would like to have Akka installed in. In my case I choose to install it in
``/Users/jboner/tools/``, simply by unzipping it to this directory.
You need to do one more thing in order to install Akka properly: set the ``AKKA_HOME`` environment variable to the root of the distribution. In my case I'm opening up a shell, navigating down to the distribution, and setting the ``AKKA_HOME`` variable:: You need to do one more thing in order to install Akka properly: set the
``AKKA_HOME`` environment variable to the root of the distribution. In my case
I'm opening up a shell, navigating down to the distribution, and setting the
``AKKA_HOME`` variable::
$ cd /Users/jboner/tools/akka-1.1 $ cd /Users/jboner/tools/akka-actors-1.1
$ export AKKA_HOME=`pwd` $ export AKKA_HOME=`pwd`
$ echo $AKKA_HOME $ echo $AKKA_HOME
/Users/jboner/tools/akka-1.1 /Users/jboner/tools/akka-actors-1.1
The distribution looks like this:: The distribution looks like this::
$ ls -l $ ls -1
total 16944 config
drwxr-xr-x 7 jboner staff 238 Apr 6 11:15 . doc
drwxr-xr-x 28 jboner staff 952 Apr 6 11:16 .. lib
drwxr-xr-x 17 jboner staff 578 Apr 6 11:16 deploy src
drwxr-xr-x 26 jboner staff 884 Apr 6 11:16 dist
drwxr-xr-x 3 jboner staff 102 Apr 6 11:15 lib_managed
-rwxr-xr-x 1 jboner staff 8674105 Apr 6 11:15 scala-library.jar
drwxr-xr-x 4 jboner staff 136 Apr 6 11:16 scripts
- In the ``dist`` directory we have the Akka JARs, including sources and docs. - In the ``config`` directory we have the Akka conf files.
- In the ``lib_managed/compile`` directory we have Akka's dependency JARs. - In the ``doc`` directory we have the documentation, API, doc JARs, and also
- In the ``deploy`` directory we have the sample JARs. the source files for the tutorials.
- In the ``scripts`` directory we have scripts for running Akka. - In the ``lib`` directory we have the Scala and Akka JARs.
- Finally ``scala-library.jar`` is the JAR for the latest Scala distribution that Akka depends on. - In the ``src`` directory we have the source JARs for Akka.
The only JAR we will need for this tutorial (apart from the ``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``dist`` directory. This is a self-contained JAR with zero dependencies and contains everything we need to write a system using Actors.
The only JAR we will need for this tutorial (apart from the
``scala-library.jar`` JAR) is the ``akka-actor-1.1.jar`` JAR in the ``lib/akka``
directory. This is a self-contained JAR with zero dependencies and contains
everything we need to write a system using Actors.
Akka is very modular and has many JARs for containing different features. The core distribution has seven modules: Akka is very modular and has many JARs for containing different features. The core distribution has seven modules:
@ -99,10 +109,13 @@ Akka is very modular and has many JARs for containing different features. The co
- ``akka-remote-1.1.jar`` -- Remote Actors - ``akka-remote-1.1.jar`` -- Remote Actors
- ``akka-stm-1.1.jar`` -- STM (Software Transactional Memory), transactors and transactional datastructures - ``akka-stm-1.1.jar`` -- STM (Software Transactional Memory), transactors and transactional datastructures
- ``akka-http-1.1.jar`` -- Akka Mist for continuation-based asynchronous HTTP and also Jersey integration - ``akka-http-1.1.jar`` -- Akka Mist for continuation-based asynchronous HTTP and also Jersey integration
- ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener - ``akka-slf4j-1.1.jar`` -- SLF4J Event Handler Listener for logging with SLF4J
- ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors - ``akka-testkit-1.1.jar`` -- Toolkit for testing Actors
We also have Akka Modules containing add-on modules outside the core of Akka. You can download the Akka Modules distribution from TODO. It contains Akka core as well. We will not be needing any modules there today, but for your information the module JARs are these: We also have Akka Modules containing add-on modules outside the core of
Akka. You can download the Akka Modules distribution from TODO. It contains Akka
core as well. We will not be needing any modules there today, but for your
information the module JARs are these:
- ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.) - ``akka-kernel-1.1.jar`` -- Akka microkernel for running a bare-bones mini application server (embeds Jetty etc.)
- ``akka-amqp-1.1.jar`` -- AMQP integration - ``akka-amqp-1.1.jar`` -- AMQP integration
@ -112,6 +125,7 @@ We also have Akka Modules containing add-on modules outside the core of Akka. Yo
- ``akka-spring-1.1.jar`` -- Spring framework integration - ``akka-spring-1.1.jar`` -- Spring framework integration
- ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support - ``akka-osgi-dependencies-bundle-1.1.jar`` -- OSGi support
Downloading and installing Scala Downloading and installing Scala
-------------------------------- --------------------------------
@ -171,9 +185,7 @@ Now we need to create a project definition using our Akka SBT plugin. We do that
import sbt._ import sbt._
class TutorialOneProject(info: ProjectInfo) extends DefaultProject(info) with AkkaProject { class TutorialOneProject(info: ProjectInfo) extends DefaultProject(info) with AkkaProject
val akkaRepo = "Akka Repo" at "http://akka.io/repository"
}
The magic is in mixing in the ``AkkaProject`` trait. The magic is in mixing in the ``AkkaProject`` trait.
@ -507,15 +519,15 @@ If you have not typed in (or copied) the code for the tutorial as ``$AKKA_HOME/t
First we need to compile the source file. That is done with Scala's compiler ``scalac``. Our application depends on the ``akka-actor-1.1.jar`` JAR file, so let's add that to the compiler classpath when we compile the source:: First we need to compile the source file. That is done with Scala's compiler ``scalac``. Our application depends on the ``akka-actor-1.1.jar`` JAR file, so let's add that to the compiler classpath when we compile the source::
$ scalac -cp dist/akka-actor-1.1.jar tutorial/Pi.scala $ scalac -cp lib/akka/akka-actor-1.1.jar tutorial/Pi.scala
When we have compiled the source file we are ready to run the application. This is done with ``java`` but yet again we need to add the ``akka-actor-1.1.jar`` JAR file to the classpath, and this time we also need to add the Scala runtime library ``scala-library.jar`` and the classes we compiled ourselves:: When we have compiled the source file we are ready to run the application. This is done with ``java`` but yet again we need to add the ``akka-actor-1.1.jar`` JAR file to the classpath, and this time we also need to add the Scala runtime library ``scala-library.jar`` and the classes we compiled ourselves::
$ java \ $ java \
-cp dist/akka-actor-1.1.jar:scala-library.jar:tutorial \ -cp lib/scala-library.jar:lib/akka/akka-actor-1.1.jar:. \
akka.tutorial.first.scala.Pi akka.tutorial.first.scala.Pi
AKKA_HOME is defined as [/Users/jboner/src/akka-stuff/akka-core] AKKA_HOME is defined as [/Users/jboner/tools/akka-actors-1.1]
loading config from [/Users/jboner/src/akka-stuff/akka-core/config/akka.conf]. loading config from [/Users/jboner/tools/akka-actors-1.1/config/akka.conf].
Pi estimate: 3.1435501812459323 Pi estimate: 3.1435501812459323
Calculation time: 858 millis Calculation time: 858 millis

View file

@ -0,0 +1,7 @@
================
First Tutorial
================
This is the source code for the first tutorial.
See the Akka Documentation for information about this tutorial.

View file

@ -8,7 +8,7 @@
<groupId>akka.tutorial.first.java</groupId> <groupId>akka.tutorial.first.java</groupId>
<artifactId>akka-tutorial-first-java</artifactId> <artifactId>akka-tutorial-first-java</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.0-SNAPSHOT</version> <version>1.2-SNAPSHOT</version>
<url>http://akka.io</url> <url>http://akka.io</url>
<dependencies> <dependencies>
@ -23,7 +23,7 @@
<repository> <repository>
<id>Akka</id> <id>Akka</id>
<name>Akka Maven2 Repository</name> <name>Akka Maven2 Repository</name>
<url>http://www.scalablesolutions.se/akka/repository/</url> <url>http://akka.io/repository/</url>
</repository> </repository>
</repositories> </repositories>

View file

@ -0,0 +1,5 @@
project.organization=akka.tutorial.first.scala
project.name=akka-tutorial-first-scala
project.version=1.2-SNAPSHOT
build.scala.versions=2.9.0.RC3
sbt.version=0.7.6.RC0

View file

@ -0,0 +1,3 @@
import sbt._
class TutorialOneProject(info: ProjectInfo) extends DefaultProject(info) with AkkaProject

View file

@ -0,0 +1,6 @@
import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
val akkaRepo = "Akka Repo" at "http://akka.io/repository"
val akkaPlugin = "se.scalablesolutions.akka" % "akka-sbt-plugin" % "1.2-SNAPSHOT"
}

View file

@ -18,31 +18,6 @@ import akka.routing.UntypedLoadBalancer;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
/**
* First part in Akka tutorial for Java.
* <p/>
* Calculates Pi.
* <p/>
* Run on command line:
* <pre>
* $ cd akka-1.1
* $ export AKKA_HOME=`pwd`
* $ javac -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar akka/tutorial/first/java/Pi.java
* $ java -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar:. akka.tutorial.first.java.Pi
* $ ...
* </pre>
* <p/>
* Run it in Maven:
* <pre>
* $ mvn
* > scala:console
* > val pi = new akka.tutorial.first.java.Pi
* > pi.calculate(4, 10000, 10000)
* > ...
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
public class Pi { public class Pi {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {

View file

@ -12,32 +12,6 @@ import Routing._
import System.{currentTimeMillis => now} import System.{currentTimeMillis => now}
import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch
/**
* First part in Akka tutorial.
* <p/>
* Calculates Pi.
* <p/>
* Run on command line:
* <pre>
* $ cd akka-1.1
* $ export AKKA_HOME=`pwd`
* $ scalac -cp dist/akka-actor-1.2-SNAPSHOT.jar Pi.scala
* $ java -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar:. akka.tutorial.first.scala.Pi
* $ ...
* </pre>
* <p/>
* Run it in SBT:
* <pre>
* $ sbt
* > update
* > console
* > akka.tutorial.first.scala.Pi.calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000)
* > ...
* > :quit
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
object Pi extends App { object Pi extends App {
calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000) calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000)

View file

@ -0,0 +1,7 @@
=================
Second Tutorial
=================
This is the source code for the second tutorial.
See the Akka Documentation for information about this tutorial.

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>akka-tutorial-second-java</name>
<groupId>akka.tutorial.second.java</groupId>
<artifactId>akka-tutorial-second-java</artifactId>
<packaging>jar</packaging>
<version>1.2-SNAPSHOT</version>
<url>http://akka.io</url>
<dependencies>
<dependency>
<groupId>se.scalablesolutions.akka</groupId>
<artifactId>akka-actor</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>Akka</id>
<name>Akka Maven2 Repository</name>
<url>http://akka.io/repository/</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,5 @@
project.organization=akka.tutorial.second.scala
project.name=akka-tutorial-second-scala
project.version=1.2-SNAPSHOT
build.scala.versions=2.9.0.RC3
sbt.version=0.7.6.RC0

View file

@ -0,0 +1,3 @@
import sbt._
class TutorialTwoProject(info: ProjectInfo) extends DefaultProject(info) with AkkaProject

View file

@ -0,0 +1,6 @@
import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
val akkaRepo = "Akka Repo" at "http://akka.io/repository"
val akkaPlugin = "se.scalablesolutions.akka" % "akka-sbt-plugin" % "1.2-SNAPSHOT"
}

View file

@ -20,31 +20,6 @@ import akka.routing.InfiniteIterator;
import akka.routing.Routing.Broadcast; import akka.routing.Routing.Broadcast;
import akka.routing.UntypedLoadBalancer; import akka.routing.UntypedLoadBalancer;
/**
* Second part in Akka tutorial for Java.
* <p/>
* Calculates Pi.
* <p/>
* Run on command line:
* <pre>
* $ cd akka-1.1
* $ export AKKA_HOME=`pwd`
* $ javac -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar akka/tutorial/java/second/Pi.java
* $ java -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar:. akka.tutorial.java.second.Pi
* $ ...
* </pre>
* <p/>
* Run it in Maven:
* <pre>
* $ mvn
* > scala:console
* > val pi = new akka.tutorial.java.second.Pi
* > pi.calculate(4, 10000, 10000)
* > ...
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
public class Pi { public class Pi {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {

View file

@ -13,32 +13,6 @@ import akka.dispatch.Future
import System.{currentTimeMillis => now} import System.{currentTimeMillis => now}
/**
* Second part in Akka tutorial.
* <p/>
* Calculates Pi.
* <p/>
* Run on command line:
* <pre>
* $ cd akka-1.1
* $ export AKKA_HOME=`pwd`
* $ scalac -cp dist/akka-actor-1.2-SNAPSHOT.jar Pi.scala
* $ java -cp dist/akka-actor-1.2-SNAPSHOT.jar:scala-library.jar:. akka.tutorial.second.Pi
* $ ...
* </pre>
* <p/>
* Run it in SBT:
* <pre>
* $ sbt
* > update
* > console
* > akka.tutorial.second.Pi.calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000)
* > ...
* > :quit
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
object Pi extends App { object Pi extends App {
calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000) calculate(nrOfWorkers = 4, nrOfElements = 10000, nrOfMessages = 10000)

View file

@ -244,9 +244,9 @@ class AkkaParentProject(info: ProjectInfo) extends ParentProject(info) with Exec
} dependsOn (docs) } dependsOn (docs)
lazy val releaseDownloads = task { lazy val releaseDownloads = task {
val distArchive = akkaDist.akkaCoreDist.distArchive val distArchives = akkaDist.akkaActorsDist.distArchive +++ akkaDist.akkaCoreDist.distArchive
val downloadsPath = localReleasePath / "downloads" val downloadsPath = localReleasePath / "downloads"
FileUtilities.copy(distArchive.get, downloadsPath, log).left.toOption FileUtilities.copy(distArchives.get, downloadsPath, log).left.toOption
} dependsOn (dist) } dependsOn (dist)
lazy val dist = task { None } // dummy task lazy val dist = task { None } // dummy task
@ -494,6 +494,25 @@ class AkkaParentProject(info: ProjectInfo) extends ParentProject(info) with Exec
class AkkaActorsDistProject(info: ProjectInfo) extends DefaultProject(info) with DistDocProject { class AkkaActorsDistProject(info: ProjectInfo) extends DefaultProject(info) with DistDocProject {
def distName = "akka-actors" def distName = "akka-actors"
override def distDocName = "akka" override def distDocName = "akka"
override def distConfigSources = (akkaParent.info.projectPath / "config") * "*"
override def distAction = super.distAction dependsOn (distTutorials)
val distTutorialsPath = distDocPath / "tutorials"
lazy val distTutorials = task {
val tutorials = Set(akka_tutorials.akka_tutorial_first,
akka_tutorials.akka_tutorial_second)
tutorials.map { tutorial =>
val tutorialPath = (tutorial.info.projectPath ##)
val tutorialFilterOut = ((tutorial.outputPath ##) ***)
val tutorialSources = (tutorialPath ***) --- tutorialFilterOut
val tutorialOutputPath = distTutorialsPath / tutorial.name
copyPaths(tutorialSources, tutorialOutputPath)
}.foldLeft(None: Option[String])(_ orElse _)
} dependsOn (distBase)
} }
class AkkaCoreDistProject(info: ProjectInfo)extends DefaultProject(info) with DistProject { class AkkaCoreDistProject(info: ProjectInfo)extends DefaultProject(info) with DistProject {