seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

Java

Jetty の ServletTester の挙動がおかしいと思ったら自分がおかしかったでござる

Jetty に ServletTester というのがあってですね、生 Servlet のテストをしたいときなんかに結構重宝してたりしたんですよ。 <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-servlet-tester</artifactId> <version>6.1.26</version> <scope>test</scope> </dependency> こんな感じにテストが書けます。 package example; import org.junit.Test…

pvm の紹介とその背景について #play_ja

この記事は Play framework 2.x Java and 1.x Advent Calendar 2013 の 2 日目です。元々 12/3 の予定でしたが 12/2 が空いたままで存亡の危機だったので、一日スライドしました。 http://www.adventar.org/calendars/104 pvm とは 今回は pvm(Play Version…

Doma + Play 1.2 の場合の DomaConfig

@gakuzzzz に教えていただいたのですが Play 1.2.x で Doma を使う時は Config クラスに Play1 のクラスローダを伝えるために #getClassHelper() を拡張する必要があるようです。これをやっていないと apt で生成した *Impl.java やら domain クラスが Class…

CORS に対応させるための Servlet Filter

JSON を返す API サーバのレスポンスを CORS に対応させるための Servlet フィルターを書きました。まあ「書いた」というほどのものでもないのですが。 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException…

jersey-json から jackson 2.2.1 に移行

Jersey 1.x で jersey-json を使って JSON 出力していたのを諸事情により Jackson 2.2.1 に移行してみました。さすがの Jackson ということで特にハマりポイントもなし。 まず pom.xml で依存を変更します。 <dependency> <groupId>com.f…</groupid></dependency>

java.util.Date の ISO 8601 準拠な datetime 出力

http://stackoverflow.com/questions/2201925/converting-iso8601-compliant-string-to-java-util-date 何が問題かというと java.util.Date 型のオブジェクトを「yyyy-MM-dd'T'HH:mm:ssZ」で出力したものは「2010-01-01T12:00:00+01:00」ではなく「2010-01-0…

Ninja デモアプリの maven archetype を試す #ninja_ja

スルーしていましたが Ninja 1.4 が 5/3 にリリースされていました。 今回のリリースから maven artchetype の提供が開始されています。 http://www.ninjaframework.org/documentation/getting_started.html 早速やってみました。 mvn archetype:generate -D…

Play1 の後継? Ninja Web Framework #ninja_ja

Ninja web framework というのが、少し試したところ、なかなか好印象だったのでご紹介します。Play1 に強く影響されているフレームワークなのですが、このまま育っていけば Play1 の後継候補(or 超える)に十分なれると思いました。 http://www.ninjaframew…

Maven の dependency にもっと新しいバージョンが出ているか調べる

あまり新しいネタかどうかは考えず、こういう小ネタも書きとめていこうかと。 Maven プロジェクトの dependency の version は特にアクティブに開発されていないプロジェクトだと放置されがち(テストが充実してないと余計に)ですが、それ以上に「そもそも…

Jersey 1.x の Content-Type に charset を指定する

Jersey 1.x の話です(2.x はまだ出てないですが、この記事が古くなってしまうことも想定して)。 通常は「@Produces(MediaType.APPLICATION_JSON)」だけだと「;charset=UTF-8」のような文字コード指定はつかないのでちょっと不便です。「@Produces("applica…

Java 8 で Scala のような何かを使う

Java 8 では JSR 335: Lambda Expressions が取り入れられます。 これを使うと Pure Java でありながら「どう見ても Scala」というコードが書けるようになります。 主に私がメンテナンスしている ScalaFlavor4J というライブラリがあります。 https://github…

Jersey(JAX-RS)で JSON レスポンスのキー名を snake_case にする方法

もっといいやり方がありそうな気もしますが。 import org.codehaus.jackson.jaxrs.Annotations; import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.PropertyNami…

org.codehaus.plexus.util.Scanner がない問題の解決

Maven でこんなのが出たら・・ [INFO] Internal error in the plugin manager executing goal 'com.mysema.maven:apt-maven-plugin:1.0.4:process': Unable to load the mojo 'com.mysema.maven:apt-maven-plugin:1.0.4:process' in the plugin 'com.mysema.…

JAXB RI の NPE バグ回避に jaxb-impl 2.2.5 以上を使う

JDK 標準で使えて便利な JAXB ですが http://jaxb.java.net/guide/Which_JAXB_RI_is_included_in_which_JDK_.html こんなのを踏んでしまって途方にくれかけました。 java.lang.NullPointerException at com.sun.xml.internal.bind.v2.runtime.output.Encoded…

JGit を Scala から使う

イマドキの現場で使えるJavaライブラリ事情 from takezoe こちらのスライドを読んでいて気になったので JGit でちょっとサンプルを書いてみました。http://www.eclipse.org/jgit/http://jgit.info/javadoc/何かいいアイデアが思いついたら JGit を使った何か…

Java のライブラリをいくつか公開しました

最近、仕事で書いた Java のライブラリをいくつか整理して GitHub で公開しましたので紹介します。 Method Cache Interceptor https://github.com/m3dev/method-cache-interceptorAOP でメソッドの戻り値をキャッシュして、次の呼び出しからはもしキャッシュ…

Jersey(JAX-RS) で Form オブジェクトを Resource クラスのメソッド内以外で触る方法

Jersey で POST リクエストなどの Form オブジェクトを Resource クラスのメソッド内以外の場所で触る方法はない・・と諦めていましたが ContainerRequestFilter と ThreadLocal 使って試してみたらうまくいきました。ちなみに、Jersey が動くより前に独自の…

JUnit Helper というテスト自動生成ツールを Google Code から GitHub に移しました

ずっとやろうと思って放置していましたが、Google Code から GitHub に移しました。https://github.com/seratch/junithelperシェルスクリプト、batファイルからの実行、maven プラグイン、Eclipse プラグインを提供しています。時間があるときに InjtelliJ I…

#akskscala でScalaFlavor4Jを紹介しました

ScalaFlavor4Jは、シンプルなJavaで実装されたライブラリです。 Function,Seq,Range,Option,Map,ParSeqなどScalaのインタフェースと互換のAPIを実装しています。https://github.com/m3dev/scalaflavor4jここでは、もう少し実際に近い形の使い方の例をあげて…

JUnit Helperでユニットテスト作成が楽になります

少し前の話になりますが、こちらの連載で拙作のJUnit Helperを取り上げていただきました。イマドキのIDE事情(106) ユニットテストを支援するEclipseプラグイン | マイナビニュース公式のページはこちらです。GitHub - seratch/junithelper: JUnit testing wi…