Groovy
XPath もしくは類似の方法を使ったXMLのパース方法を Groovy, Scala, Ruby, PHP でまとめてみた。 個人的には、XMLのパース用途では Groovy を主に使用し、状況や気分に応じて Ruby, PHP を使用するような感じだ。(Scala はXMLパース用途にはあまり使わない…
ドキュメント指向DBであるMongoDBを軽く使ってみました。 環境は以下の通り。 MongoDB 1.3.1 MongoDB Java Driver 1.2 Groovy 1.7.0 MongoDBの起動 MongoDB のアーカイブをダウンロード・解凍、bin ディレクトリを環境変数 PATH に設定して mongod コマンド…
Java で書かれた分散 KVS の Voldemort を簡単なサンプルを作って試してみた。使用した環境は以下の通り。 Groovy 1.7.0 Voldemort 0.60.1 サーバーの作成と実行 今のところ、Voldemort の bin ディレクトリには .sh ファイルしか用意されていないため、Wind…
前回 id:fits:20091101 の続きとして、今回はドメインクラスの関連をユニットテストする方法とインテグレーションテストの方法を紹介する。 関連のユニットテスト 関連をユニットテストする場合の注意点は、ドメインクラスの save メソッドを呼び出しても関…
Grails におけるドメインクラスのユニットテストに関して、Grails 標準テストと Easyb(BDD 用のツール) プラグインを使った 2通りを紹介する。ドメインクラスのユニットテストを行ううえでのポイントは、実行時にドメインクラスに適用される save(), valid…
Groovy には XML を処理する手段がいろいろと用意されているが、今回は XmlSlurper を使った XML の加工(要素/属性の追加・削除)と出力を試してみる事に。とりあえず、属性の追加や削除は以下で実現可。 要素の追加: appendNode メソッドを使用 属性の追加…
Groovy スクリプト上で Windows の COM 実行を可能とする Scriptom モジュールを試すために、Windows Update の履歴を出力する処理を Groovy スクリプトで書いてみた。実行環境は以下の通り。 Java SE 6.0 Update 11 Groovy 1.5.7 Scriptom 1.5.4 WSH スクリ…
前回(id:fits:20081203)作成した Apache Camel + Esper コンポーネントの環境を使って、ちょっとだけ高度なイベント処理を試してみる。とりあえず、Esper のビルトイン Data Window Views の中から以下のようなものを使う。 Length batch window "win:leng…
Apache Camel の Camel Extra プロジェクトには Camel 上で Esper のイベント処理を行うための Esper コンポーネント(camel-esper ライブラリ)が用意されているので、これを使って Camel 上で簡単な Esper を使ったイベントのフィルタリング処理を試してみ…
Groovy 1.6 の新機能である @Mixin と @Delegate アノテーションを Groovy 1.6 beta2 で試してみた。@Mixin と @Delegate が実現する機能は以下の通り。 @Mixin は実装を取り込む(自分に機能を取り込む) @Delegate は委譲処理を実現(自分に機能を取り込ま…
easyb の dbunit(DBのユニットテストツール)用のプラグインを使ってみる事にする。 ちなみに、dbunit プラグインを使うと database_model メソッド(クロージャで DB に格納する初期レコードを指定できる)が使えるようになる。使用した環境は以下の通り。…
id:fits:20080919 で作成したサンプルの Java版は以下の通り。動作は Groovy 版と基本的に同じ。Groovy 版との違いで注目すべき点は getOut().setBody() で String.class の指定が不要なところ。 SampleRoute.java package sample; import java.io.FileInput…
Apache Camel の Jetty コンポーネントで HTTP リクエストを処理できるようなので、簡単なサンプルを作ってみる事にした。(ついでに File コンポーネントも使う)なお、Jetty コンポーネントを使うには Apache Camel に同梱されている jar ファイル以外に以…
Apache Camel は Apache ActiveMQ プロジェクトの一部、Spring を基盤とした統合フレームワークで EIP (Enterprise Integration Patterns) を実現するためのクラスライブラリが用意されている。 なお、EIP ではエンタープライズアプリケーションを連携させる…
Subversion 用の Pure Java ライブラリ SVNKit を使って、ログを取得してみる。(svn log のような動作を実装)実行環境は以下の通り。 Groovy 1.5.6 SVNKit 1.1.8 事前準備として、groovy コマンドの実行時に SVNKit の svnkit.jar がロードされるように Gr…
以前 id:fits:20070515 は JRuby から JUDE API を使ったが、今回は Groovy と Scala で .jude ファイル内の全クラス(IClass インターフェース実装オブジェクト)を出力するような簡単なスクリプトを書いてみた。実行に使った環境は以下の通り。 Groovy 1.5…
前回 id:fits:20080703 作成したプラグインプロジェクトを使って、以下のようなイベント処理を行う機能を追加する。 ドメインクラスが追加された場合に、スペックファイルの雛形を自動生成 イベント処理スクリプトの追加 イベント発生時の処理は、プラグイン…
以下のような環境を使って、easyb を実行するだけの簡単な Grails プラグインを作ってみる。 JavaSE 6 (1.6.0_06) groovy 1.5.6 grails 1.0.3 easyb 0.8 Grails でのプラグイン作成手順は以下の通り。 プラグイン作成プロジェクトの生成 プラグインの情報を…
jBPM PVM(プロセス仮想マシン)を Groovy から使ってみる。 jBPM PVM は、グラフ構造を構築して実行するためのシンプルな Java ライブラリで、ワークフローや BPM を実現するための共通基盤となる。使うための準備は以下のとおり。 jBPM PVM のサイトから z…
Jersey を以下の条件で動かしてみる。(Groovy 1.5.6, Jersey 0.8 使用) リソースクラスを Groovy スクリプトで記述 HttpServer の実行も Groovy スクリプトで Groovy スクリプトの作成 Groovy スクリプトを作成する。アノテーションの記述に関して以下のよ…
今まで知らなかったのだが、Groovy に関数型言語で有名なカリー化(currying)のための仕組みが用意されていたので試してみた。 Groovy でのカリー化 やり方は非常に簡単で、クロージャに定義される curry() メソッドにカリー化する引数を渡してやれば、指定…
前回 id:fits:20080202 は、Java 開発への BDD(Behavior Driven Development, 振舞駆動開発)適用という事で JDave と Rspec(JRuby で実行)を簡単に使ってみたが、今回は Groovy で振る舞いを記述する easyb を試してみた。easyb の特徴は以下の通り。 Gr…
Grails 1.0-RC3 で Ajax を使ったサンプルを作ってみた。とりあえず、Grails で Ajax を使うには以下のようにすれば良いみたい。 gsp ファイル g:javascript を タグ内に追加 remoteXXX や formRemote タグを使用 コントローラークラス render メソッドを使…
以下の環境を使って JBoss Seam 2.0 を試してみる事にする。 JavaSE 6.0 Update 3 JBoss 4.2.2 GA JBoss Seam 2.0.1 CR1 インストール ダウンロードサイト からダウンロードした JBoss Seam 2.0.1 CR1 の zip ファイルを適当な場所に解凍し、環境変数 PATH …
Groovy 1.1 で実行できるようにした S2JDBC の環境(id:fits:20071202)で、一対多・多対一の関連の定義と検索を試してみた。テーブル定義に使った SQL は以下の通り。EMP テーブルで外部キーを定義している。 DROP TABLE IF EXISTS DEPT; CREATE TABLE DEPT…
急に思い立ったので、Groovy スクリプト上で S2JDBC(S2・S2Tiger 2.4.18 RC3)を試してみることにした。なんとなくハマリそうな気もしたのだが、Groovy 1.1 ならアノテーションを使えるし Groovy だけで S2JDBC が書けると色々活用できるかなと思い、とりあ…
Apache Ant のビルドファイル(XML)を Groovy で記述できる Gant を使ってみる。常々 XML でビルド定義を書くのが面倒に感じ、YAML とかで書けないかなと思ってたので、スクリプトで簡単に記述できるツールはうれしい限り。 手動インストール方法 http://do…
ProjectZero の Command Line Interface を使ってみる。インストールは、http://www.projectzero.org/wiki/bin/view/Download/DownloadCli からダウンロードした後、適当なディレクトリに展開し、そのホームディレクトリを環境変数 PATH に設定するだけ。(…
Groovy1.1 を使えば、アノテーションが使用できるので Groovy スクリプトで WebServices のクラスを定義する事が可能。ただし、wsgen コマンドを使う場合は、groovyc コマンドで Java クラスを作成する必要があるなど、Groovy で実行するメリットはあまり無…
Grails は、Groovy 用の Ruby on Rails ライクなフレームワークで、 DB のテーブルを元にクラスへのマッピングを行う RoR とは異なり、Groovy で定義したドメインクラスを元に DB のテーブルを自動生成するという特徴がある。個人的には、DB のテーブルあり…