Groovy

Groovy, Scala, Ruby, PHPでのXMLパース処理 - XPath使用

XPath もしくは類似の方法を使ったXMLのパース方法を Groovy, Scala, Ruby, PHP でまとめてみた。 個人的には、XMLのパース用途では Groovy を主に使用し、状況や気分に応じて Ruby, PHP を使用するような感じだ。(Scala はXMLパース用途にはあまり使わない…

Groovy で MongoDB を使用

ドキュメント指向DBであるMongoDBを軽く使ってみました。 環境は以下の通り。 MongoDB 1.3.1 MongoDB Java Driver 1.2 Groovy 1.7.0 MongoDBの起動 MongoDB のアーカイブをダウンロード・解凍、bin ディレクトリを環境変数 PATH に設定して mongod コマンド…

分散 KVS の Voldemort を Groovy で使ってみる

Java で書かれた分散 KVS の Voldemort を簡単なサンプルを作って試してみた。使用した環境は以下の通り。 Groovy 1.7.0 Voldemort 0.60.1 サーバーの作成と実行 今のところ、Voldemort の bin ディレクトリには .sh ファイルしか用意されていないため、Wind…

Grails におけるドメインクラスのユニットテストとインテグレーションテスト - Grails標準テストと Easyb プラグイン使用

前回 id:fits:20091101 の続きとして、今回はドメインクラスの関連をユニットテストする方法とインテグレーションテストの方法を紹介する。 関連のユニットテスト 関連をユニットテストする場合の注意点は、ドメインクラスの save メソッドを呼び出しても関…

Grails におけるドメインクラスのユニットテスト - Grails標準テストと Easyb プラグイン使用

Grails におけるドメインクラスのユニットテストに関して、Grails 標準テストと Easyb(BDD 用のツール) プラグインを使った 2通りを紹介する。ドメインクラスのユニットテストを行ううえでのポイントは、実行時にドメインクラスに適用される save(), valid…

XmlSlurper を使った XML の加工

Groovy には XML を処理する手段がいろいろと用意されているが、今回は XmlSlurper を使った XML の加工(要素/属性の追加・削除)と出力を試してみる事に。とりあえず、属性の追加や削除は以下で実現可。 要素の追加: appendNode メソッドを使用 属性の追加…

Groovy で Windows Update の履歴を出力する - Scriptom を使った COM 実行

Groovy スクリプト上で Windows の COM 実行を可能とする Scriptom モジュールを試すために、Windows Update の履歴を出力する処理を Groovy スクリプトで書いてみた。実行環境は以下の通り。 Java SE 6.0 Update 11 Groovy 1.5.7 Scriptom 1.5.4 WSH スクリ…

Apache Camel で Esper を使ったイベント処理2 - Time・Length batch window

前回(id:fits:20081203)作成した Apache Camel + Esper コンポーネントの環境を使って、ちょっとだけ高度なイベント処理を試してみる。とりあえず、Esper のビルトイン Data Window Views の中から以下のようなものを使う。 Length batch window "win:leng…

Apache Camel で Esper を使ったイベント処理 - Esper コンポーネント使用

Apache Camel の Camel Extra プロジェクトには Camel 上で Esper のイベント処理を行うための Esper コンポーネント(camel-esper ライブラリ)が用意されているので、これを使って Camel 上で簡単な Esper を使ったイベントのフィルタリング処理を試してみ…

Groovy 1.6 のアノテーション @Mixin と @Delegate

Groovy 1.6 の新機能である @Mixin と @Delegate アノテーションを Groovy 1.6 beta2 で試してみた。@Mixin と @Delegate が実現する機能は以下の通り。 @Mixin は実装を取り込む(自分に機能を取り込む) @Delegate は委譲処理を実現(自分に機能を取り込ま…

easyb で dbunit - easyb dbunit プラグイン使用

easyb の dbunit(DBのユニットテストツール)用のプラグインを使ってみる事にする。 ちなみに、dbunit プラグインを使うと database_model メソッド(クロージャで DB に格納する初期レコードを指定できる)が使えるようになる。使用した環境は以下の通り。…

(Java版) Apache Camel を使った HTTP 処理とファイル入出力 - Jettry, File コンポーネント、Gant の利用

id:fits:20080919 で作成したサンプルの Java版は以下の通り。動作は Groovy 版と基本的に同じ。Groovy 版との違いで注目すべき点は getOut().setBody() で String.class の指定が不要なところ。 SampleRoute.java package sample; import java.io.FileInput…

Apache Camel を使った HTTP 処理とファイル入出力 - Jettry, File コンポーネント使用

Apache Camel の Jetty コンポーネントで HTTP リクエストを処理できるようなので、簡単なサンプルを作ってみる事にした。(ついでに File コンポーネントも使う)なお、Jetty コンポーネントを使うには Apache Camel に同梱されている jar ファイル以外に以…

Apache Camel の使用

Apache Camel は Apache ActiveMQ プロジェクトの一部、Spring を基盤とした統合フレームワークで EIP (Enterprise Integration Patterns) を実現するためのクラスライブラリが用意されている。 なお、EIP ではエンタープライズアプリケーションを連携させる…

SVNKit の使い方 - ログ取得

Subversion 用の Pure Java ライブラリ SVNKit を使って、ログを取得してみる。(svn log のような動作を実装)実行環境は以下の通り。 Groovy 1.5.6 SVNKit 1.1.8 事前準備として、groovy コマンドの実行時に SVNKit の svnkit.jar がロードされるように Gr…

JUDE API を使ったクラスの出力 - Groovy と Scala

以前 id:fits:20070515 は JRuby から JUDE API を使ったが、今回は Groovy と Scala で .jude ファイル内の全クラス(IClass インターフェース実装オブジェクト)を出力するような簡単なスクリプトを書いてみた。実行に使った環境は以下の通り。 Groovy 1.5…

Grails プラグインの作り方2 - プラグインのイベント処理

前回 id:fits:20080703 作成したプラグインプロジェクトを使って、以下のようなイベント処理を行う機能を追加する。 ドメインクラスが追加された場合に、スペックファイルの雛形を自動生成 イベント処理スクリプトの追加 イベント発生時の処理は、プラグイン…

Grails プラグインの作り方 - シンプルな easyb 実行プラグインを作成

以下のような環境を使って、easyb を実行するだけの簡単な Grails プラグインを作ってみる。 JavaSE 6 (1.6.0_06) groovy 1.5.6 grails 1.0.3 easyb 0.8 Grails でのプラグイン作成手順は以下の通り。 プラグイン作成プロジェクトの生成 プラグインの情報を…

jBPM PVM の使用

jBPM PVM(プロセス仮想マシン)を Groovy から使ってみる。 jBPM PVM は、グラフ構造を構築して実行するためのシンプルな Java ライブラリで、ワークフローや BPM を実現するための共通基盤となる。使うための準備は以下のとおり。 jBPM PVM のサイトから z…

Groovy で Jersey を動かしてみる

Jersey を以下の条件で動かしてみる。(Groovy 1.5.6, Jersey 0.8 使用) リソースクラスを Groovy スクリプトで記述 HttpServer の実行も Groovy スクリプトで Groovy スクリプトの作成 Groovy スクリプトを作成する。アノテーションの記述に関して以下のよ…

Groovy と Scala でのカリー化

今まで知らなかったのだが、Groovy に関数型言語で有名なカリー化(currying)のための仕組みが用意されていたので試してみた。 Groovy でのカリー化 やり方は非常に簡単で、クロージャに定義される curry() メソッドにカリー化する引数を渡してやれば、指定…

Java での BDD(振舞駆動開発)その2 - easyb

前回 id:fits:20080202 は、Java 開発への BDD(Behavior Driven Development, 振舞駆動開発)適用という事で JDave と Rspec(JRuby で実行)を簡単に使ってみたが、今回は Groovy で振る舞いを記述する easyb を試してみた。easyb の特徴は以下の通り。 Gr…

Grails で Ajax

Grails 1.0-RC3 で Ajax を使ったサンプルを作ってみた。とりあえず、Grails で Ajax を使うには以下のようにすれば良いみたい。 gsp ファイル g:javascript を タグ内に追加 remoteXXX や formRemote タグを使用 コントローラークラス render メソッドを使…

JBoss Seam 2.0 を試してみる

以下の環境を使って 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 …

S2JDBC における一対多・多対一の関連と検索

Groovy 1.1 で実行できるようにした S2JDBC の環境(id:fits:20071202)で、一対多・多対一の関連の定義と検索を試してみた。テーブル定義に使った SQL は以下の通り。EMP テーブルで外部キーを定義している。 DROP TABLE IF EXISTS DEPT; CREATE TABLE DEPT…

Groovy で S2JDBC を使用してみる

急に思い立ったので、Groovy スクリプト上で S2JDBC(S2・S2Tiger 2.4.18 RC3)を試してみることにした。なんとなくハマリそうな気もしたのだが、Groovy 1.1 ならアノテーションを使えるし Groovy だけで S2JDBC が書けると色々活用できるかなと思い、とりあ…

Gant を使ってみる

Apache Ant のビルドファイル(XML)を Groovy で記述できる Gant を使ってみる。常々 XML でビルド定義を書くのが面倒に感じ、YAML とかで書けないかなと思ってたので、スクリプトで簡単に記述できるツールはうれしい限り。 手動インストール方法 http://do…

ProjectZero CLI を使ってみる

ProjectZero の Command Line Interface を使ってみる。インストールは、http://www.projectzero.org/wiki/bin/view/Download/DownloadCli からダウンロードした後、適当なディレクトリに展開し、そのホームディレクトリを環境変数 PATH に設定するだけ。(…

Groovy で Webサービス公開

Groovy1.1 を使えば、アノテーションが使用できるので Groovy スクリプトで WebServices のクラスを定義する事が可能。ただし、wsgen コマンドを使う場合は、groovyc コマンドで Java クラスを作成する必要があるなど、Groovy で実行するメリットはあまり無…

Grails を使って簡単な Web アプリを作成

Grails は、Groovy 用の Ruby on Rails ライクなフレームワークで、 DB のテーブルを元にクラスへのマッピングを行う RoR とは異なり、Groovy で定義したドメインクラスを元に DB のテーブルを自動生成するという特徴がある。個人的には、DB のテーブルあり…