Play! framework

Play! frameworkで作ったアプリをHerokuで動かしてみた

HerokuがJavaに対応*1しました。そこで、Play! frameworkのTutorialで作るブログエンジン、「Yabe」をHerokuで動かしてみました。 Herokuにアプリを作成*2 Herokuにアプリを作成しますが、この時に「--stack」オプションを追加して「cedar」スタックを指定し…

Play! frameworkが使いにくい点

Play! frameworkを使っていると、私はどうしてもRuby on Railsと比較してしまいます。 自動的にJOINしてくれない? Ruby on Railsの場合、モデルのfindメソッドに「:joins =>」があると、自動的にJOIN句を含んだSQL文が生成されますが、Play! frameworkのMod…

解説がソースの逆を書いている?

Play! frameworkのチュートリアルにある「A first iteration for the data model」において、mappedBy属性を使って一対多の関連を管理することをJPAに伝える部分について解説があります。 Note how we have used the mappedBy attribute to tell JPA that th…

OAuth ClientモジュールがGAEで動かない

Play! frameworkのOAuth ClientモジュールがGoogle App Engineでうまく動きませんでした。 検証環境 Play! framework 1.0-r1036 (1.0.2.1以降のナイトリービルド) GAE-1.0.2 Siena-1.1 OAuth-1.0 appengine-java-sdk-1.3.3.1 (GAEのSDK) 問題点 理由は、OAu…

OAuth Clientモジュールに付属しているサンプル

Play! frameworkのOAuth Clientモジュールに付属しているサンプルを動かしてみたのですが、いくつか問題点がありました。 問題点 Userテーブルにレコードが保存されない ApplicationコントローラのgetUserアクションで、UserモデルのfindOrCreateメソッドが…

User-Agentに応じてビューを切り替えるモジュール

User-Agentに応じてビューを切り替えるため、例えばApacheのhttpd.confなどで設定して、コントローラやアクションを振り分けるという方法があります。私は、Play frameworkの中でやりたかったので、play.mvc.Controllerを継承するクラスを作り、モジュール化…

RoRのMigrationのようなモジュール

Ruby on RailsのMigrationに似たモジュールができたみたいなので、r899で試してみました。 Migrate module Play! frameworkの1.0.1では「play install migration」ではモジュールをインストールできないので、モジュールのホームページからダウンロードし、…

playコマンドにjavadocオプションが追加

Play! frameworkで作成したクラスのJavadocだけを生成してくれるオプションが、最新リビジョンのplayコマンドに追加されたので試してみました。 Feature Request: Please add a "play create-javadocs" command ※「play create-javadoc」ではなく「play java…

CSRF対策が無い?

XSSはあるですが、CSRFに関する対策が見あたらない。自分でモジュールを作るしかないのかな...。一応、Play! frameworkのGoogleグループに質問を投げてみた。 [追記:2/22 6:20] Bug報告に上げろとのお話だった、上げてみた。 Feature request: CSRF protecti…

デフォルトでbindJPAObjectsはtrueになっている

またリリースノートには、future.bindJPAObjectsはconf/application.confで「not enabled by default」と書いてあります。 Of course as this feature can break existing applications it is not enabled by default. You can enable it by adding the foll…

Better binding for JPA objectsを試してみたが...

1.0.1のリリースノートを読んで、JPAオブジェクトが自動的にロードされる旨、『Better binding for JPA objects』に書いてありました。そこで、『データの修正』の、 public static void edit(long id, String message, String name) { String msg = "データ…

formタグはJSP taglibライクなPlayタグの#{form}を使う方がいいと思う

CodeZineの『Javaで軽快に使える「軽量フレームワーク」特集 〜本格的なRoRスタイルフレームワーク「Play!」(2)第8回』を読んで、自分でも試してみました。2ページ目の『データの作成と保存』には、記述例として以下のように書いてあります。 ${msg} <form method="post" action="@{Application.add}"> <table> : </table></form>…

Play! framework 1.0.1

Play! frameworkの1.0.1がリリースされました。リリースノートには書かれていませんが、2009年11月4日に書いた「UTF-8以外でメール送信」も含まれます。

UTF-8以外でメール送信

Play! frameworkのメール送信は、2009年11月4日22時現在、文字コードがUTF-8に固定されてしまっています。このままだと、日本で使う場合は何かと不都合があるので、libs/Mail.javaとmvc/Mailer.javaに対し、メールのタイトルと本文の文字コード(character-se…

shaモジュールの変わりにhashlibモジュールを使う

Play!を起動する時、 /home/foo/play/play:564: DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha と表示されるので564行目を、 import shaを、 from hashlib import sha1 as shaと書き換えてみた。[追記:11/3…

Play! frameworkでProduction時のjpa.ddlは"none"にした方がいいと思う

Play! frameworkのTutorialにある、Preparing for productionにおいて、jpa.ddlは"create"に設定しておくと、「データベースにテーブルが存在しない場合は、作成される」と書いてあります。 We will now tweak the way Hibernate manages the database schem…

Play! FrameworkのTutorialで、Validate失敗時、入力した値を戻す

今週のはじめより、Java(+Python)で作られたPlay frameworkの勉強をはじめました。2004年にRuby on Rails 1.0を知った時と同じ衝撃を感じています。こいつ、できるぞと。また、Java 1.4.2以降はRubyを始めてしまったので、今更かもしれませんがアノテーショ…