How Tomcat Works その8

Chapter 15 : Digester

前にも書いたようにTomcatの構造はserver.xmlがそのまま反映されています。xmlの設定ファイルを設定情報オブジェクトにマッピングすることは珍しくもなんともないですが、サーバオブジェクトそのものがxmlからマッピングされているソフトウェアはあまり無いのではないでしょうか。
ここまで解説した、

がそのままserver.xmlに記述されているのを見て取ることができますね。
このserver.xmlを読み込んでオブジェクトにマッピングするツールがDigesterです。Digester自体はApache Commonsプロジェクトの中の1サブプロジェクトですが、XMLマッピングツールとしてはかなりメジャーな存在です。本ではDigesterの使い方まで突っ込んで書いています。XML上のパスとオブジェクトのマッピングルールを記述していくのですが、結構めんどくさいですよね。いや、スキーマ前提の他のツールよりは楽なのですが、Betwixtに慣れるとBetwixtのデフォルトマッピングルールが標準になればいいのになあ、と思います。
ちなみにTomcat6ではcommonsのDigesterではなく、org.apache.tomcat.util.digesterパッケージの中に直接Digesterを持っています。Digesterに限らず、CollectionsやModelerなどもorg.apache.tomcat.utilパッケージに持ってきており、余計な依存関係を排除しようとしているようです。実際Tomcat6になってから、Eclipseに取り込んだときのソース可読性がかなり向上しました。