Jenkins + Java + Evernote を連携

突然ですが、私は月に1回のペースで社内勉強会を開催している。
(といっても参加人数はそこまで多くないけどね<(TωT)>)
その勉強会の下準備として細かい作業がそこそこある。

特に以下の準備作業。

(1) こくちーずに、募集用のページを作る
(2) 社内に案内メールを出す
(3) 勉強会用のサンプルアプリケーションを作る

(3) は各勉強会の内容ごとに異なるので、これは個別に頑張って作るしかないと思われる。

しかし、(1) と (2) については、ある程度自動化できるのではないか?
私の想定では、以下のような手順を踏めば、完全自動化を実現できると思っている。

(1) こくちーずに、募集用のページを作る
1. 前回の勉強会の情報からベースとなる募集用ページを作成
2. 前回と今回の勉強会の差分情報のみを、募集用ページにマージ

(2) 社内に案内メールを出す
1. 案内メールの内容は、殆ど同じで、各回の勉強会の情報のみが異なる。そのため、メールをテンプレート化して、差分のみをマージする
2. 出来上がったメールを、毎回同じアドレスに送信する


で、今回の取り組んだのが (2) の 1. のところ。
(※ホントのところは、メールを送るところまでやりたかったのだが、うちの会社はセキュリティがかなり厳しいので、メールを自動で送るというころは一旦断念)

がしかし、上記の※にもあるように、メールを自動で送ることは(セキュリティ的に)出来ないので、とりあえず作成したメールを後でどこからでも参照できるように Evernote に保存することにした。

出来上がった成果物の各役割は以下の通り。


○Jenkins
各勉強会の個別の情報を入力する(UIを提供)。入力された情報を Java で処理するために引き渡す。

Java
メイン処理。大きくは、Jenkins の JOB で入力された情報とテンプレート情報を元に、メールの内容を自動生成。
テンプレートエンジンには Velocity を採用。

Evernote
上記 Java で処理されたメール内容を、Evernote API を介して Evernote にノートとして保存。

まぁやり方としては、他にも簡単な方法はいくらでもあったと思うが、自己学習の意味で、このような少々複雑な実装内容となっている。

今回の実現にあたって、一番勉強になったのは Evernote API を使ったところだ。
ネットにも色々サンプルもあって取っ付きやすかった。
それに、(少々使いにくい部分もあるが)ある程度 API は充実しているので、実装もしやすかった。

Evernote API に関する記事も近々書こうと思う。
でないと、忘れてしまうから(笑)