JavaからAkkaハンズオンの準備手順

[JavaからAkkaを触ってみるハンズオン](https://github.com/yugolf/akka-in-action-java/tree/master/chapter-up-and-running)の準備手順です。

### 準備の流れ
1. 必要なソフトウェアのインストール（JDK/Maven/IntelliJ IDEA/HTTPie）
* ソースコードの取得
* テストの実行
* サーバーの起動
* APIの動作確認
* IntelliJ IDEAへのソースコードの取り込み

### １．必要なソフトウェアのインストール
* JDK8
    * JDK8以上で動くと思いますが、動作確認済の環境は8のみ（[Oracle JDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html)) 
* （任意）Maven
    * [ダウンロード](https://maven.apache.org/download.cgi)／[インストール(https://maven.apache.org/install.html)
    * ※[Maven Wrapper](https://github.com/takari/maven-wrapper)を入れたので「./mvnw」「mvn」をできます。
* （任意）IntelliJ IDEA か他のIDE
    * IntelliJ IDEAの場合は[Community版](https://www.jetbrains.com/idea/download/)でOK
* （任意）HTTPリクエスト送信ツール何か
    * CLI： [HTTPie](https://httpie.org/)
    * GUI： [Advanced REST client](https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=ja)
    * ...など

### ２．ソースコードの取得
```shell
git clone git@github.com:yugolf/akka-in-action-java.git
````

### ３．テストの実行
* 取得したソースコードの`akka-in-action-java/chapter-up-and-running`ディレクトリで実行

```shell:テストの実行
mvn test
```

```shell:実行結果
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com:goticks-java >--------------------------
[INFO] Building goticks-java 1.0
[INFO] --------------------------------[ jar ]---------------------------------

（省略）

Results :

Tests run: 14, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.740 s
[INFO] Finished at: 2018-12-08T23:19:20+09:00
[INFO] ------------------------------------------------------------------------
```

### ４．サーバーの起動
* 取得したソースコードの`akka-in-action-java/chapter-up-and-running`ディレクトリで実行
    - 動作確認後、Enterで終了

```shell:サーバーの起動
mvn compile exec:exec
```


### ５．APIの動作確認
* 2つのHTTPリクエストを送信し次のようなレスポンスが得られればOK（[HTTPie](https://httpie.org/)を使用した場合の例）

##### （１）イベントの作成

```shell:HTTPリクエスト
http POST localhost:5000/events/JJUG/ tickets:=5
```

```shell:HTTPレスポンス
HTTP/1.1 201 Created
Content-Length: 27
Content-Type: application/json
Date: Sat, 08 Dec 2018 14:36:29 GMT
Server: GoTicks.com REST API

{
    "name": "JJUG",
    "tickets": 5
}
```

##### （２）イベント一覧の取得
```shell:HTTPリクエスト（イベント一覧）
http GET localhost:5000/events/
```

```shell:実行結果
HTTP/1.1 200 OK
Content-Length: 40
Content-Type: application/json
Date: Sat, 08 Dec 2018 14:37:24 GMT
Server: GoTicks.com REST API

{
    "events": [
        {
            "name": "JJUG",
            "tickets": 5
        }
    ]
}
```

### ６．IntelliJ IDEAへのソースコード取り込み
* `Project from Existing Sources...`よりGitHubからクローンしたディレクトリ（`akka-in-action-java/chapter-up-and-running`）を指定  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/19438/5fbf1ff2-5b42-1eb9-a640-897e7d71ae9d.png)
* `Import project from external model` ではMavenを指定  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/19438/a5aa5955-1920-d256-ea3b-d1a818f014fe.png)
* 流れに従って進め`Finish`をクリックするとプロジェクトのインポート開始
* こんなかんじに見れれば取り込み成功！！  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/19438/e3dd0415-29d8-1d85-ab16-3bb048762cab.png)


以上で準備完了です。おつかれさまでした。

#追記
ハンズオンは「handson」ブランチで実施しました。

```shell:ブランチの切り替え
git checkout handson
```