java

NIOでソケットプログラミング

個人的にはJava7の目玉機能の一つはNIO2だと思います。ただ、NIO自体を体系的に勉強したわけじゃないから実はあまり分かっていない部分も多い今日この頃、あえて、NIOを利用したソケットプログラムをやっつけで書いてみました。(暇つぶしに。)リクエストを…

ApacheDerbyのススメ

なんかとりあえず検証や、サンプルプログラムを動かしたい場合、しかもDBが必要になる場合、選択肢はMySQL、PostgreSQL?いえいえ、もっと手軽にやるならDerbyでしょ。特別なインストールも、設定も不要。サンプルプログラム動かすだけならDLして、解凍して…

Javaでmixinさせるライブラリ作るのやめた・・・。

前回の記事でJavaでMixinするライブラリを作ろうとしてたけどやめました。そもそもcglibを使えば簡単にできるし、少しコード書いてみるとMixinするインスタンスの生成をコンテナで制御するだけのラッパーみたいになってしまってあまり意味がないと思ったので…

Javaでmixin

rubyの好きな機能の中でMixinがある。結構多用することもあるんだけど、Javaでも同じことができればなって思うこともある。バイトコードを直接操作するようなライブラリを使えば実現できるんだけど、個人的にはもっと手軽に利用したい。というわけでJavaで手…

How to use maru-dog JavaBeansプロパティデータバインドライブラリ (9)

前回から少し経ちますが、今回こそはmaru-dogのDSLについて解説したいと思います。maru-dogのバージョンは0.5.16以降を前提とします。これまでの日記でmaru-dogの内部DSLについては何度か簡単に説明したと思います。簡単におさらいすると、JavaBeansのプロパ…

maru-dogとmaru-common

maru-dogとmaru-commonは現在maruマルチプロジェクトとして開発していますが、マルチプロジェクトをやめてそれぞれ独自プロジェクトにするか、maru-commonをmaru-dogに統合するか検討中です。理由はいくつかあるのですが、バージョンが分かりづらいからです…

How to use maru-dog JavaBeansプロパティデータバインドライブラリ (8)

久しぶりにmaru-dogについて解説したいと思います。前回内部DSLについて概要を紹介し、今回は少し詳細に解説する予定でしたが少し寄り道をしようと思います。maru-dogで標準でサポートしているコンバータですが、version0.5.8以降でいつくか追加になったもの…

Bean Validation(HibernateValidator)とm4hv-extensionsについて

前回はBean Validationの基本的な使い方について記事を書きましたが、今回はBeanValidationとその追加バリデーションライブラリであるm4hv-extensionsについて解説します。 m4hv-extensionsはBeanValidationの実装であるHibernateValidatorで動作確認を取っ…

Hibernate Validatorについて

Hibernate Validator 4はJSR303 - Bean Validationの参照実装で、JavaBeansに対するバリデーションフレームワークです。かなり手軽に使えるので個人的に気に入ってます。Bean Validationのインターフェースを実装し、独自の追加バリデータを作成するのも比較…

maru-0.6.17リリース

maru-0.6.17をリリースしました。JavaBeansデータバインドライブラリmaru-dogのバインド定義をOverrideするための内部DSLで流れるようなインターフェースで定義することができるようにしました。前回の記事で説明したようなかんじでバインド定義のDSLを記述…

maru-dogの内部DSL

maru-0.6.16をリリースしたばかりですが、内部DSLを修正したバージョンを早めにリリースしようと考えています。理由は、maru-dogの内部DSLを流れるようなインターフェースで記述可能にするためです。これまでのバージョンではdeclareFor〜endで定義を囲って…

maru-0.6.16リリース

maru-0.6.16をリリースしました。JavaBeansデータバインドライブラリmaru-dogにバインド元のプリミティブ型のプロパティをString型に変換してバインドを行う以下の拡張型コンバータを追加しました。 @ByteToString(Byte型のプロパティをString型に変換) @S…

BeanValidatorとかm4hv-extensionsとかJava7とか・・・

これまでずっとmaru-dogの解説やJava7の解説なんかをメインでやってきたけど、そろそろmaru-dogについてはメイン機能の解説はなくなってきたので一通り解説し終わったらBeanValidator(HibernateValidator)とBeanValidatorの追加バリデーションを利用したm4…

意外と役立つArrayとArrays

配列内のデータの比較をするためにこんな感じのメソッドを書書きたくなることがある?! public static boolean compare(Integer[] a, Integer[] b) { if (a.length != b.length) { return false; } for (int i = 0; i < a.length; i++) { if (!a[i].equals(b[…

NetBeans 6.8 + Glassfish V3 リリース

久しぶりに更新。そして久しぶりにNetBeansのHPをみたらどうらやらバーション6.8がリリースされたみたい。。。 さらに、GlassfishV3バンドルでいよいよJavaEE6が来たなってかんじで早速使ってみようとDL。やっぱり一番の注目はJSF2とCDI(JSR-299:旧WebBean…

Java Contexts and Dependency Injection (旧:WebBeans)

seamframeworkでpreview版が出てから少したつけど、使ってみた感想は結構いいです。もともとJBoss-Seamが好きでいろいろWebアプリケーションを作成していたってのも少し影響してるかも。EJB、JSFレイヤの統合とEL式の導入、アノテーションベースのDI、及びス…

JavaVM内で利用中のメモリ量を取得する方法

プログラム内で、現在JavaVM内で利用中のメモリ量を計測することが可能です(ある程度ですが・・・)。 私も最近知り合いから教えてもらったのですが。ちょっとしたパフォーマンスの計測や、オブジェクトを共有すか否か検討するときとかに使えそうですね。や…