leftovers...

about grails groovy

Grails 1.2-M3 に更新!

Grails 1.2-M3がリリースされました。


前回のGrails-1.2M2の更新に引き続き安定版1.2へ向けてのリリースです。

今回の更新で追加された機能は、

  • 依存解決DSL

MavenレポジトリからのJar依存解決用DSLが追加されました。
実装にはApache Ivyを使用しています。Maven、Ivyを使わずに、依存関係を明示的にコントロールできます。

grails.project.dependency.resolution = {
    inherits "global" // inherit Grails' default dependencies
    repositories {
        grailsHome()
        mavenCentral()
    }
    dependencies {
       runtime 'com.mysql:mysql-connector-java:5.1.5'
    }}
  • GSPパフォーマンスの超最適化

レンダリングレイヤーのGSPとSitemeshのスループットが2,3倍に!

  • マルチ組込コンテナサポート、デフォルトはTomcatに!に追加機能。

Grails Plugin: Apache Tomcat plugin
コマンドからのリモートデプロイが実装されました。

grails tomcat deploy
grails tomcat undeploy

今まで基本機能に含まれていたWebフロー機能(SpringのWebFlow)は、今後はプラグインとして提供されます。

GrailsプラグインをZipファイルだけ、(セントラル)プラグインリポジトリにリリースできるようになりました。
SVN以外でプラグインバージョン管理している場合に有効。

grails release-plugin --zipOnly
  • formatNumberとformatDate タグの改良

http://grails.org/doc/1.2.x/ref/Tags/formatNumber.html
http://grails.org/doc/1.2.x/ref/Tags/formatDate.html

JGGUGサマーイベント2009 「G* on GAE/J 挑戦編」

もちろん来年も夏にやるから2009ってついてるわけで!?
まあ、とにかく参加した皆様おつかれさまでした。
参加できなかった皆様にも、サイトが準備されています。
http://groups.google.co.jp/group/jggug-summer-2009
そして、ネタに使われて実況もしていた。Twitterもあります。
http://twitter.com/jggugsummer2009

そして自分の発表内容 「G* on GAE/J 挑戦編」はこんな感じです。
おしながき

詳しくは以下のプレゼン資料を参照してください。
SlideShareでみれます
http://www.slideshare.net/tyama/g-on-gaej
PDFダウンロード
http://grails.jp/sample/gr_on_gaej.pdf

このほぼ同じ内容とか、コマンドのコピペとか、コードの断片とか、各フレームワークの設定方法とかは、以下を参照してください。
http://groups.google.co.jp/group/jggug-summer-2009/web/g-on-gae-j


資料を作るときのトラブルとか、バグとの戦いとか、本番の時間の押しとかは、あたりまえに予測しておくべきですね ;-)。いろいろ補足説明は後日書きます。

あと、懇親会でTDDとかの話いろいろ勉強になりました。ありがとうございました。


で、次回はいつにしましょうか!?

第4回 g* ワークショップ「はじめてみよう!Grailsプラグイン」初級編

第4回 g* ワークショップ おつかれさまでした。
今回はGrails徹底入門での9章の内容範囲で話をさせていただきました。土壇場で内容変更をしたのと、あいかわらず時間を考えないで内容をつくったので、駆け足のライブコーディングになってしまい申し訳ないです。

今回のハンズオン用のサンプルアプリを移動中に新幹線で作ってるときに、ついうっかりミス操作をしてしまい、同じ名称で新規プラグイン作成コマンドを実行。
解りやすくまとめると。

grails create-app sample001 

そしてサンプルのGrailsアプリを結構がんばって作る。
車掌に声をかけられて空白の時間......続きを開始.....

grails create-plugin sample001

え!?上書きされた!最初はかなりあせった...
まあ、こんなミスもあるさと、ちょうど良かったので内容がどうなってるか検証してみると、しっかりプラグインの新規作成時に複製されるファイルは全て上書きされてました。運良く上書きされたファイルは全く編集していなかったので無問題!
今まで何度もGrailsアプリはGrailsプラグインにできます!と言い続けてきたのですが、実際にはGrailsの旧バージョンのバグとかで、view関連が見えなかったりコントローラがまれに正常に動かなかったりと苦労してきたので、最近は全然試していませんでしたが、良い機会なので試してみようと、プラグインになってしまったサンプルアプリをプラグインとしてパッケージ!そして、別のGrailsアプリを新規に作ってインストール、そして起動してみました。

grails create-app test001
cd test001
grails install-plugin ../sample001/grails-sample001-0.1.zip
grails run-app

起動は正常!しかしブラウザでみるとエラー!ぅぅぅ...。プラグインに入っている内容はプラグイン用に調整していないので当然です。なのでプラグイン用にパスの定義等の変更を少々!(スライドを参考に!)そして再度起動!正常に動作しました!というわけで、今回のライブコーディングのネタを若干変更しました。

実際にプラグインライブコーディングでやった内容は、

スライドとライブコーディングに使ったもろもろはコッソリ置いておきます。
これらで遊ぶにはプラグインsvnリポジトリが必要です。
用意する物

  • grails-1.1.1
  • 自分で勝手に使えるhttp経由のSVNサーバ

※各プラグインをリリースするには、
~/.grails/settings.groovy 又はBuildConfig.groovyにプラグインSVNリポジトリの設定が必要です。
例えばSVNリポジトリhttp://127.0.0.1/gp の場合

grails.plugin.repos.discovery.local="http://127.0.0.1/gp" 
grails.plugin.repos.distribution.local="http://127.0.0.1/gp"

プラグインのリストを見る

grails list-plugins -repository=local

リリースコマンド

grails release-plugin -repository=local 

まとめると、GrailsでのWebアプリを完全にプラグイン分けで開発したら、メインのプロジェクトに必要なのは、application.properties、プラグインのレポジトリを指定するためのgrails-app/conf/BuildConfig.groovy、そしてgrails-app/confの中にある、DataSource.groovy、Config.groovy等が管理できてれば良い!?ってことですね:-)

前回の合同の時のソースも置いておきます。 http://grails.jp/sample/beanbuilder-test.zip