vertx.io
vertx は巷で最近話題であろう(というか以前にちょっと小耳にはさんだ程度)Node.js の様な振る舞いをする Java環境で動作するアプリケーションである。
詳しい解説など、下記のサイト等を参考になると思う。
http://acro-engineer.hatenablog.com/entry/2013/08/10/131203
何はともあれ、Javaをソースから弄るなどここ数年ほぼ皆無だったこともあり不明な点はあまり解説しない(というか、出来ない)のであしからず。
今回は、更に、MongoDB を使ってデータ管理を行う事を前提にしたいため、色々いたずらした。勿論、JavaScriptコードにて。
vertxへmoduleとしてmongodbへの接続を設定する必要があり、英文ドキュメントをあさりながらの実装だったので、その際に起きた事を箇条書き程度で留める。
下記のマニュアルにも記載されている通りであるが、
http://vertx.io/mods_manual.html#what-is-a-vertx-module
container.deployModule(…)
このメソッドで指定するらしい。
また、別途、mod-mongo-persistor を gitでcloneする。 (※注意 これは結果としてビルドの必要がなかったようだ)
そのとき、グレードルラッパーが付属しているので、
./gradlew eclipse
として、ビルド。
build ディレクトリが出来るので、覗いてみると、
− build
├ classes
├ dependency-cache
└ tmp
└ org
container.deployModule(‘io.vertx~mod-mongo-persistor~2.1.1-SNAPSHOT’);
実行したコードはこちら(app.js)
var vertx = require('vertx');
var container = require('vertx/container');
var console = require('vertx/console');
var server = vertx.createHttpServer();
container.deployModule('io.vertx~mod-mongo-persistor~2.1.1-SNAPSHOT');
server.requestHandler(function(request) {
console.log('An HTTP request has been received');
var str = '';
request.headers().forEach(function(key, value) {
str = str.concat(key, ': ', value, 'n');
});
request.response.end(str);
}).listen(8080, 'localhost');
実行…
$ vertx run app.js
Succeeded in deploying verticle
Downloading io.vertx~mod-mongo-persistor~2.1.1-SNAPSHOT. Please wait...
Downloading 100%
Module io.vertx~mod-mongo-persistor~2.1.1-SNAPSHOT successfully installed
自動的にインストールされたらいしい。
何処からDownloading? おそらくどこかのリポジトリからであろうが、なんとも不思議な感じが。結果として、ビルドする必要が無かったと思われる。
(その後、先ほどのディレクトリを丸ごと削除した後に、vertx/mods 以下も全て削除してもDownloading… が)
load('vertx.js');
var vertx = require('vertx');
コメントは受け付けていません