2006-01-03 [長年日記]

_ [jboss]Seasar開発者の"JBoss Microcontainer"への感想(on off)

 JBoss5.0のコアはおそらくMicroContainer2.0。
 JBoss EJB3.0 Embeddableのコアも最終的にはMicroContainer2.0になるのでは?

 #MicroContainer2.0がどんなモノか調べてみました。
 MicroContainer2.0ではシンプルさは同じで主にDeployerまわりが実装されます。
 デプロイメント仮想化フレームワークが用意され、各Deployerがこれを利用します。
 JAR Deployer、Main Deploer、Classloading Deployerだけでなく他のDIコンテナを
 プラグインするDIコンテナDeployerの実装も予定されています。Spring Deployerだけでなく
 Seasar2 Deployerも実装されるかもしれません。
 (JBoss4.x用にSpring Deployerがリリースされているので、それを見ればイメージし易いかも。)
 これは他のDIコンテナで管理されているPOJOを容易にMicroContainerから利用できる
 ようにするということだと思います。他のDIコンテナの管理するPOJOをそのままハイジャック
 できるので"MicroContainer"にはシンプルな機能しかいらないと。

 #力(勢い)のあるミドルウェア・ベンダはすごい...。

_ [diary][java.lang]InputStreamReader vs FileChannel[日記]

 今まで単純なテキストファイルの読込にInputStreamReaderを使ってたけど、1.4からNewIOが
 導入されていることだし、遅まきながらFileChannelを試してみる。
 一括してバイト配列に読み込めるし、小規模ファイルの一括読込では問題なさそう。
 あとはパフォーマンス、ファイルの一括読込で差はでる?

 テキストファイルを一行ずつ処理したい場合はInputStreamReader -> BufferdReaderが簡単、
 ファイル全体を読み込んでグリグリいじりたいような場合はFileChannel -> ByteBuffer、
 というふうにIOと用途によって使いわける感じ。

 #Channel APIはFileとSocketを同じAPIで透過的に扱えるのがミソなんだろうな、やっぱり。
 #Socket周りには縁がないけど、そのうちいじってみよう。

 A.InputStreamReaderでの読み込み
   (BufferdReaderをかます必要は実はない...readLineメソッドでないのは改行コードがいるため)

 StringBuffer sb = new StringBuffer();(1.5の場合、StringBuilder = new StringBuilder();)
 //ファイルのオープン
 FileInputStream fis = new FileInputStream(filePath);
 InputStreamReader isr = new InputStreamReader(fis, encoding);
 BufferedReader br = new BufferedReader(isr);
 //読込及び格納
 while ((s = br.read()) != -1) {
   sb.append((char) s);
 }
 //ファイルのクローズ
 br.close();
 fis.close()
 String str = sb.toString();

  B.FileChannelでの読み込み
 //ファイルのオープン
 FileInputStream fis = new FileInputStream(filePath);
 FileChannel channel = fis.getChannel();
 ByteBuffer bbuf = ByteBuffer.allocate((int)channel.size());
 //読込及び格納
 channel.read(bbuf);
 bbuf.clear();
 byte[] bytes = new byte[bbuf.capacity()];
 bbuf.get(bytes);
 channel.close();
 //ファイルのクローズ
 fis.close();
 String str = new String(bytes,encoding);

_ [diary][java.xb]StAX利用のススメ

 使ってみた感じ、StAXはSAXより柔軟性があり、SAX的な記述も可能。
 SAXを齧ったことのある人なら、おそらく、すぐに習得可能。
 SAXより癖がない気がするので、XMLパースの初学者にもStAXはおすすめ。
 ハンドラを継承する等、煩雑な手順がいらないのも魅力。
 サンプルはこちら(on off)

 JAX-WS(旧名JAX-RPC)も内部で全面的にStAXを使っているとのことなので
 やっぱり時代はSAXよりStAXかも。
 JAXB2、XFire、ActiveSOAP等最近のXML周りのフレームワークはStAXを採用する
 のが多い。

_ [diary][java.lang]Java標準正規表現API vs Jakarta ORO

 現在、両者の処理速度に差はないように感じる。
 Jakarta OROはPerl互換の正規表現書式を採用しているので、Ruby等のLLでもそのまま
 通用する。Java標準正規表現APIとJakarta OROの採用する正規表現のサポート範囲に
 ほとんど差はない。
 但し、Jakarta OROは現在、メンテもされず放置中、安定しているからなのかは謎。
 Java標準正規表現API はJava言語仕様の一部なのでメンテは期待できる。

 #CometをJava標準正規表現API、 Jakarta OROを用いて開発している経験に基づく。
 #正規表現は便利、文字列操作には必須。覚えておいて損はない。
 #このブログの設定をいじっているときにこんな正規表現もありと気づいたりする。

_ [java.xb]stax-ex(on off)

 メモメモφ。/* from Kohsuke Kawaguchi's Blog(on off) */
 XMLStreamReaderでのバイナリデータの読込を可能にする等、StAXを小粋に拡張する
 プロジェクト。Sunの人間が取り組んでいるので、StAXの次期仕様に反映されやすいかも。

_ [java.tool]わらじ1.0(on off)

 クラスファイルの衝突検出。/* from marsのメモ(on off) */

_ [java.fw]Restlet(on off)(on off)

 メモメモφ。/* from TSS(on off) */

_ [js.tech]lightbox.js - Web2.0ライクな画像サムネイル生成(on off)

 メモメモφ。/* to marsのメモ(on off) */

_ [system.design]プロセス論の時代からコンテンツの時代へ(on off)

 メモメモφ。

_ [elec.pc]Intel、新モバイルCPU「Yonah」を発表(on off)

 メモメモφ。/* from Intermezzo(on off) */

_ [life]ダーリンコラム<今年のおまえさんに。>(on off)

 メモメモφ。