C Sharpens you up

http://qiita.com/yuba に移しつつあります

Play! 2.x

EBeanのトランザクションがtry-with-resources構文で書けるようになります

Play!(2.2以前)も採用している軽量O/RマッピングライブラリEBeanに出していたプルリクエスト*1が通ったので手前味噌。これまでEBeanでは、トランザクションはtry-finallyで書くのが基本でした。 Ebean.beginTransaction(); try { Order order = Ebean.find…

Play2でHaxeを使う覚え書き

HaxeはActionScriptをベースにした汎用言語だが、Javascriptへのコンパイルが当初から実現されているのでBetter JSのひとつとしても人気。 実験的にJava, C#, C++へのコンパイルまでサポートされている。特徴としては、強力な型推論を持ったクラスベースのオ…

Play2でTypeScriptを使う覚え書き

新規プロジェクトのためクライアントサイド開発に使うBetter JSを選定中。 2014/01/09現在の状況。 TypeScriptコンパイラの導入 TypeScriptコンパイラtscはNode.js上で実装されているので まずNode.jsをインストール http://nodejs.org/ (PATHも通す) npm …

ステートレスなPlay2でログイン状態を管理する

Play framework 2.x Java and 1.x Advent Calendar 2013*1の20日目(5日ぶり4回目)です。寄稿予定表をみると、明日担当のgakuzzzzさんの内容とかぶってしまっている可能性がとても高いのですが、Play1とPlay2の違いがあるので許してもらえないものでしょう…

Play! 2.1 アプリを Play! 2.2 に移行した作業の覚え書き

Play framework 2.x Java and 1.x Advent Calendar 2013*1の15日目(4日ぶり3回目)です。Play! 2.1(Java)で作り始めたWebアプリなのですが、まだ作り始めたばっかりのうちに2.2系列のPlay!が出て来たので、どうせなら今のうちにと乗り換えを敢行しました(B…

顧客ログイン後にEBeanのアクセスDBを切り替える

Play framework 2.x Java and 1.x Advent Calendar 2013*1の11日目(5日ぶり2回目)です。さて、法人向けクラウドサービスを提供するときに問題となる、顧客ごとのデータの分離についてが今日のトピックです。個人向けのWebサービスであればすべての情報は1…

EBeanでもユニットテストの導入はスマートです。そう、Lombokならね。

Play framework 2.x Java and 1.x Advent Calendar 2013*1の6日目です。お題は、Lombokを使ってPlay2 Javaのユニットテストを書きやすくできますよという話。 *1:Advent Calendarとはクリスマスまでのカウントダウン日めくりのことで、それになぞらえて12/1…

Play2.0 - secureクッキーは設定でオンにしておきたいけど開発機ではオフにしたい場合

secureクッキーは、HTTPSを使っていない場合にはブラウザからサーバに送り返されないフラグを付けたクッキーのことです。 秘密情報をクッキーに乗せて覚えさせたのに、うっかりさんユーザーがHTTPでアクセスしてきてクッキー内容がパケット盗聴で漏れるとか…

エクスプローラから一発でコマンドプロンプトやPlay!プロンプトを開く

Windowsでコマンドライン操作が必要なとき、わざわざスタートメニューからコマンドプロンプトを探して起動しておられる方はまさかおられませんな。基本操作【フォルダをSHIFT右クリック】→【コマンドウィンドウをここで開く】 はもちろんのこと皆様使ってお…

Play!のEbeanモデルをJUnitでテストするとき"It has not been enhanced"エラーを防ぐ

Play!のJava向けO/RマッパーであるEbeanはコンパイルに介入するタイプのフレームワークです。 具体的には、Ebeanモデルがコンパイルされたあとに、getter/setterを勝手に作成して埋め込んでくれます。これが、単にpublicフィールドを書いただけで遅延アクセ…

Play! framework Evolutionsでストアド関数を書きたい

Evolutionsに指定したSQL文は適用のとき、セミコロンで分解されて一文ずつデータベースに送信されます。 ではストアド関数に含まれるセミコロンはどうなるか。 やはりぶった切られてしまいます。当然文法エラー。ではぶった切られないようにするにはどうする…

Play! framework Evolutionsのsqlファイルの優先順位

Play! frameworkではEvolutionsファイルを書くことでデータベースへのスキーマ適用とか更新がWebからワンタッチできるようになります。ありがたいですね。sqlスクリプトファイルがスキーマ変更1件を表していて、【変更を適用するSQL文(Ups)】【変更を取り消…