BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Grails 0.6がSpring Web FlowとJBoss式のRich ConversationからBest of Breed Mixを搭載

Grails 0.6がSpring Web FlowとJBoss式のRich ConversationからBest of Breed Mixを搭載

Graeme Rocher氏はGrailsの最新リリース版が”Rails指向の始まり”からかけ離れているものであることを発表した(source)。このリリースは0.6とみなされていたが、それに費やされた労力を考慮するとそれが全く謙虚な設定であることが分かる。下記が最新リリースに搭載されている全ての機能である。

  • Jonit Groovy/Java コンパイル
  • Spring Web Flow Integration
  • スコープサービスを許容するSpringスコープへのサポート
  • 自動XML/JSONマーシャリングとRESTful URLマッピングを伴い向上したRESTのサポート
  • コンベンションにより可能ではない設定用の新たなConfig DSL
  • 新しくなったインターフェースとブランディング
  • Sitemeshインラインデコレーターをサポート
  • コントローラがライブラリをメソッドとして呼び出し可能
  • 新たなGSPタグ
  • スタートアップタイムのスピード、ユニットテスト、ジェネレーションツールにおける大幅な改善

Spring Web Flow Integration

従来のXMLよりもむしろコード経由でSpringマネージビーンを定義する新たな方法をRod Johnsonが提案したように、GraemeはGroovyでSpring Web Flowを定義(サイト・英語)する前者に類似したアプローチを取っている。

showCart {
on("checkout").to "enterPersonalDetails"
on("continueShopping").to "showCatalogue"
}
enterPersonalDetails {
on("submit") {
def p = new Person(params)
flow.person = p
def e = yes()
if(p.hasErrors() || !p.validate())return error()
}.to "enterShipping"
on("return").to "showCart"
on(Exception).to "handleError"
}
enterShipping {
on("back").to "enterPersonalDetails"
on("submit") {
def a = new Address(params)
flow.address = a
if(a.hasErrors() || !a.validate()) return error()
}.to "enterPayment"
}

上記の一例はJBossSeamフレームワークで説明したように、作業ユニットか”対話”を定義する概念を描いている。Seamと同様に"フロー"には対話のステート情報を含んでいる。

オートマチックXML/JSON マーシャルとRESTful URLマッピング

以前はコンバージョン用にプラグインを使用していた一方、このリリースでは下記のものを使用している。

 import grails.converters.*
...

def list = {
render Book.list() as XML
// or render Book.list() as JSON
}
原文はこちらです:http://www.infoq.com/news/2007/09/grails06

この記事に星をつける

おすすめ度
スタイル

BT