2009-01-01から1年間の記事一覧

Galileoのミラーアップデートサイト

Galileoのアップデートサイト重すぎ!という訳でミラーサイトに変更。 [Window]->[Preferences]->[Install/Update]->[Available Software Sites] LocationのURLの http://download.eclipse.org/ を http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/ に置換する…

Place Holder(Input Prompt)を表示するIBehavior

TextFieldやTextArea用のPlace Holder(入力がない場合はグレーの文字でヒントが出るやつ)のIBehaviorを書いてみました。 書いた、といってもSimpleAttributeModifierと大して変わらないですが。jQueryとjQuery.placeholderをこのIBehaviorと同じpackageにお…

enhanceされたclassにも対応するIConverterLocator

HibernateなどORMでentityがenhanceされているとWicketのConverterLocatorはObject.toString()の値を返してしまいます。Application.newConverterLocator()は、内部にclass名とIConverterのMapを持ち、IConverterLocator.getConverter(Class type)は単純にMa…

LIVE雅咆2009〜春の祭典スペシャル!動画

4月の25〜26日に吉祥寺は前進座劇場で行われたLIVE雅咆2009〜春の祭典スペシャル!の動画ができました。 是非ご覧ください!

ServletFilterではなくIRequestCycle

対DoS攻撃用のIRequestCycleを書きました。 あるIPアドレスから同じURLへ一定期間(expire)に閾値(threshold)以上のアクセスがあるとDosAttackExceptionをぶん投げます。こういったものはServletFilterで書くのも手ですが、そうするとWicketTesterでテストを…

Guice-Quartz integration

GuiceとQuartzのintegrationを書いてみました。 CronTriggerのみの実装です。 Jobをimplementsしたinterfaceにannotationを書だけで定期的にメソッドが呼ばれるようになります。 見たほうが早いのでとりあえずソース。呼び出すinterface。 package net.nagas…

DoCoMoのiモードIDを取得する

DoCoMoのiモードIDを取得する場合URLにguid=onという文字列を含める必要があります。 簡単サインインの際はformのactionに加えるのですが、Wicketの場合は以下のように書きます。 Form<SignInPage> signInForm = new StatelessForm<SignInPage>("signInForm") { private static final</signinpage></signinpage>…

au端末のcheckboxに注意

auの端末はinputタグのtypeがcheckboxの場合にvalueを指定しないとデフォルトで0が送信されます。 Wicketはこれをfalseとして解釈してしまうので、明示的に値を設定するListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apa…

Cookieを使った自動サインイン

AuthenticatedWebSession.isSignedIn()がfinalなお陰でoverrideできず若干トリッキーな実装になっています。 が、やってる事は普通のservletでcookieを扱うのと変わりありません。 AuthenticatedWebSession.signIn(String username, String password)の代わ…

リポジトリにないjarを扱う

Mavenのセントラルリポジトリにないjarを扱う場合はプロジェクト直下にリポジトリディレクトリを作成して管理しています。 例えばguice+JPA用にwarp::persistというライブラリを使う事が多いのでこれを例にします。 といっても手順は簡単でjarファイルをgrou…

携帯向けに文字列を実体参照にするListener

Wicketは文字列を実体参照としてhtmlに出力してしまうので、それを抑制するためにComponent.setEscapeModelStrings(boolean escapeMarkup)を片っ端から呼び出すListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apache.wick…

enum型のConverter

国際化に対応するためプロパティファイルを参照するConverterを書いてます。 package net.nagaseyasuhito.sandbox.converter; import java.util.Locale; import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wick…