2009-12-04
Grails 1.2 RC1 リリースっ。
Grails 1.1.x系のバグフィックス版 Grails 1.1.2がリリースされたり。
http://www.grails.org/1.1.2+Release+Notes
Groovyは、1.6.6と1.7-RC-1そしてGrails1.2のバグFix用にGroovy-1.6.7
そして、Gaelyk 0.3.2のリリースと、
Gantは1.8.1、http://gant.codehaus.org/
Gradleも0.9がリリース(まだ?) http://www.gradle.org/
Griffonは0.3-SNAPSHOTがいたりとか・・・。http://griffon.codehaus.org/Download
と何気にGroovy関連を並べてみる!
Spring 3.0.0.RC3がリリースされて、http://www.springsource.org/node/2198 (ぇえ!正式リリースじゃなかったのん??)
そして、ここ最近ちゃんと短い期間で正式1.2へ向けてマイルストンリリースされているGrailsのRC1がリリースです。
はい!本題!
今回のGrails 1.2 RC1リリースに含まれる新機能のご紹介です。
- 公式リリースノート: http://www.grails.org/1.2-RC1+Release+Notes
- チェンジログ: http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11063&version=15959
- ダウンロード: http://grails.org/Download .
- ドキュメント: http://grails.org/doc/1.2.x
詳しくは以下のエントリーも参考に!
Grails 1.2-M4 リリースだよ! - leftovers...
Grails 1.2-M3 に更新! - leftovers...
Grails 1.2-M2 リリースですよ! - leftovers...
Grails 1.2-M1 リリース & JSUG+JGGUG合同勉強会 お疲れ様でした。 - leftovers...
- grails install-dependencyコマンド
Grails-1.2-M3辺りでも紹介した、依存解決関連 (Apache Ivyで実装されてる)が、さらにパワーアップ!?
コマンドからもローカルキャッシュにレポからライブラリ引っ張れます。
grails install-dependency mysql:mysql-connector-java:5.1.5
ドメインクラスのnamedQueriesプロパティにDSLを記述します
class Publication { String title Date datePublished static namedQueries = { recentPublications { def now = new Date() gt 'datePublished', now - 365 } publicationsWithBookInTitle { like 'title', '%Book%' } } }
以下のように使用できます。
def recentPubs = Publication.recentPublications.list() def recentPubs = Publication.recentPublications.list(max: 10, offset: 5) Publication.recentPublications.count()
- CriteriaビルダーでsqlRestriction実装
def c = Person.createCriteria() def peopleWithShortFirstNames = c.list { sqlRestriction "char_length( first_name ) <= 4" }
grails-app/domains内にあるドメインクラスにGORMシンタックスの代わりにアノテーションでも定義できます。(GAE/J対策になるかな!?)
こんな感じです。
import javax.persistence.* @Entity @Table(name = "animal") class Animal { @Id @GeneratedValue int id String name @ManyToOne @JoinColumn Owner owner static constraints = { name blank:false } }
コントローラとかで使うparamsとタグリブのattrsにnullセーフコンバータメソッドが追加されました。
例えばこんな感じ
int('パラメータ名')とかlong('パラメータ名')とかboolean('パラメータ名')と付ける
def total = params.int('total')
あと、同じ名称のパラメータをリスト型にまとめるlist('パラメータ名')
(これプチ便利ぢゃん)
def names = params.list('names')
プロジェクトのsrc/doc/ref、src/doc/guide以下にファイルを配置することで、Grailsのリファレンスと同じドキュメントエンジンがプロジェクトで利用可能。
これが、さらに、Grailsの外でも使えるようになりました。
ぉぉ!これ待ってた、他でも使いたいね!
Gradleのシンタックスでは、こんな感じ
compile group: 'org.grails', name: 'grails-docs', version:'1.2.0.RC1'
ant.taskdef (name: 'docs', classname : 'grails.doc.ant.DocPublisherTask')
ant.docs(src:"src/docs", dest:"build/docs",
properties:"src/docs/doc.properties")
※個人的に試していないのでリリースノートそのまま書いています(-.-);
// Config.groovy
beans {
someService {
someProperty = new SomeObject()
}
}
- テスト関連の改良
元々Grailsでのテスト実装では、JUnit以外で実装されたテストはGrailsの深い部分で使用する際、結構大変でしたが、(例えば easybとか)、今回オーバーホールされて、様々なテストに対応しやすくなりました。
テストフェーズの指定方法が向上しました。
※多分spockはspockプラグインが必要。まあ、以下は例としてなので。
grails test-app <phase>:<type> grails test-app unit:spock // ‘spock’ テストを ‘unit’ フェーズで実行
どちらもオプショナルなので、以下のようにどちらかの指定もできます。
grails test-app unit: // ‘unit’フェーズで全てのタイプのテストを実行 grails test-app :spock // 全てのフェーズで、‘spock’テストを実行
‘SomeController’の全てのテストを ‘unit’フェーズで実行
grails test-app unit: SomeController
‘unit’ と ‘integration’の全てのタイプのテストを実行
grails test-app unit: integration:
従来の指定方法でも動きます。
grails test-app --unit // grails test-app unit: と同じです
grails test-app -clean
- System.outとSystem.errをエコーさせる。
デフォルトでは、テスト時は何も表示されません。-echoOutや-echoErrを指定すると表示を許可します。
grails test-app -echoOut -echoErr
そして、このリリースラッシュの理由はGroovy Grails eXchange 2009だったりもするらしいです。そうです、自分もスピーカーで2年前に(もうそんなになるのか・・ xmlDo.net - Grails Web Development: Grails eXchange 2007)参加したことある、Groovy Grailsの祭典がロンドンで、 12/9、12/10に開催されます。
http://skillsmatter.com/event/java-jee/groovy-grails-exchange-2009
- 13 http://www.jggug.org/
- 8 http://www.xmldo.net/Home/ncstaffblog
- 7 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=5Xb&q=enctype="multipart/form-data"+form+アクション&btnG=検索&lr=lang_ja&aq=f&oq=
- 5 http://twitter.com/tyama
- 4 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/mottsnite/20091022/1256214960
- 4 http://mkawablog.blogspot.com/
- 2 http://d.hatena.ne.jp/keyword/grails
- 2 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=groovy+フレームワーク&ct=&pd=1&sr=0000
- 2 http://hoso.homelinux.net/hatena/antenna.jsp
- 2 http://mixi.jp/show_friend.pl?id=2779053



