Blojsomを、満足いくレベルでコード読了。プラグインも、さくっと作ってみて動くことを確認。なお、EclipseのTomcatプラグインを使って、実際にDebugモードでステップ実行すると、とっても簡単に理解できる。Eclipseばんざい。

Blojsomは、Bloxsomにインスパイアされて作ったJava実装のBlogサーバ。非常にシンプルな作りをしていて、ほとんどの機能がプラグインで提供される仕組みになっている。
ちなみに、作者の David Czarnecki氏は、Java国際化プログラミングの著者としても知られている。そのため国際化対応は、ほぼ問題ない(日本語タイトルの場合は、"proposed name"に英語のファイル名を指定しないとだめ。エラーこそ出ないが、一覧で表示されなくなる Tomcat5の場合は、server.xmlのConnectorタグに、URIEncoding="utf-8"を追加することで、日本語でも問題なくなる)。
blojsomの仕組み
簡単にblojsomを理解するポイントをあげておく(使い方ではありません。ユーザーガイドはこちら)。
Blojsomは、デフォルトでは、Servletベースで稼動する。そのため、理解の中心は、org.blojsom.servlet.BlojsomServletのserviceメソッドになる。また、blojsomのコアでは、BlogUser、Blog、BlogEntry、BlogCategoryなどの基本的なデータモデルが定義されている。重要なのはflavorという概念で、これにより大きく画面(テンプレート)を切り替える。デフォルトは、htmlと呼ばれるBlog画面そのもの。あとは、RSSやAtomといったファイルなど。そして、管理画面がadminになる。つまり、管理画面もBlog画面も、1つのSerlvetの処理で切り替えているのだ。
まず、BlojsomServletでは、URLからユーザーとカテゴリを判断し、該当するエントリの一覧を取り出す。データは、BlojsomFetcherというインターフェースにラップされているが、実装はファイルベースのものだけが提供されている。
あとは、flaverにそったプラグインを次々を実行し、flaverにあったテンプレートを使って出力する。出力方法は、BlojsomDispatcherの実装になる。デフォルトでは、Apache Jakarta Velocityになっているが、JSP、FreeMarker、そしてGroovyも用意されており切り替え可能だ(Groovyには、簡単なテンプレートエンジンが付属している)。
実に単純、これだけのことだ。
プラグインを作りたい場合は、BlojsomPluginを実装し、WEB-INF/plugin.propertiesに追加する。あとは、管理画面からプラグインチェーンの中に追記するだけ。
ただ、あまりにも単純すぎるという問題はあるかも。たとえば、一覧と詳細でテンプレートを切り替えるといったことができない。あくまでも、1つのテンプレートで、指定されたカテゴリに所属する全件を常に表示するだけである。つまり、トップページは全カテゴリの一覧、詳細はその日付の一覧(つまり1件)といった具合だ。もちろん、テンプレート側で、いろいろ組み込めば、希望する動きは得られるかもしれないが、一般人には無理だろう。
次期Mac OS Xに標準搭載
そして、注目されるのは、このBlojsomが、Appleの次期Mac OS X 10.4 「Tiger」に搭載される事。アップルのプレスリリース"アップル、Mac OS X "Tiger" Serverをプレビュー"によると、
Weblog ServerはMac OS X Tigerの「Safari(サファリ) RSS」にフル対応しており、「Server Admin」内にあるチェックボックスを選択するだけで、ウェブログを簡単に運営できます。Weblog Serverは有名なオープンソースプロジェクト「Blojsom」をベースとしており、Tiger Serverとは使いやすいインターフェイスによって緊密に連係しています。また、Kerberos認証とLDAPを統合するほか、カレンダーベースのナビゲーションと、カスタマイズ可能なテーマを提供します。ユーザは内蔵されているWebベースの機能や、XML-RPCあるいはAtom APIに対応したウェブログクライアントを使ってエントリを作成できます。
となっている。ウェブログクライアントというのは、ectoのようなものになることが想像される(なお、ectoは、blojsomに対応済)。一方、"内蔵のWebベースの機能"というが、どうなるのか興味がある。Blojsomに搭載されている管理画面は分かりやすいというものではないので、Appleという名前で提供できるものではないと思われる。となると、Appleが作成するのだろうか?なお、Blojsomは、BSDライセンスなので、再配布時にコードを公開する必要性はない。もし、Appleが管理画面を作成したとしても、オープンソースである可能性は低い。ただ、純粋にAppleが作るWebアプリケーションに興味がある。うーん。
なんにしても、OSにWeblogサーバを付属させるというのは、面白いアイデアだ。もちろんMac miniにも搭載されるわけで、インターネットにつなげば、簡単にBlogのホスティングができる。案外、家庭用のマルチアピアランスサーバ(?)として考えれば、Mac miniの応用範囲は広いのかもしれない。あれ、blojsomのエントリなのに、Macの話になっている…
2005/01/20追記:itperさんの指摘で、Mac miniにblojsomが載るという部分に取り消し線を入れました。おっしゃるとおり、Tiger Serverと書いてありますね。クライアント版にも搭載されると勘違いしていました。たいへん、失礼しました。
2005/01/20追記:mathさんの指摘で、Tomcat5の場合には、server.xmlのConnectorタグに、URIEncoding="utf-8"を追加することで、日本語でも問題ないことを確認しました。これを実施しないと、日本語のカテゴリ名が化けてしまいます(Windows XPでは)。

コメント (9)
Blojsom を Tiger Server に搭載する、とは書いてあっても Client 版の Tiger に搭載するとは何処にも書いて無いと思います。よって、Mac mini では普通は、Blojsom が実行される事は無いでしょう。。もちろんインストールも実行も可能でしょうが。
投稿者: itper | 2005年01月20日 16:58
日時: 2005年01月20日 16:58
初めまして。
Blojsomですが、シンプルでメンテが楽でお気に入りです。
日本語のタイトルですが、tomcat5を使っているのであれば、server.xmlのconnectorにURIEncoding=“utf-8”いれたらどうですか?僕の環境ではこれでうまくいっています。検索は2byte駄目ですが。。
メールが化けるとか、気になる点が幾つかありますが、appleの話がでてから、開発も盛んで、今後が楽しみです。
にしてもectoとの相性の良さは参ります。ectoが手放せなくなってしまいました。
投稿者: math | 2005年01月20日 19:04
日時: 2005年01月20日 19:04
itperさん、mathさん、コメントありがとうございます。追記にも書きましたが、ご指摘にしたがってエントリの内容を修正しました。これからも、よろしくお願いします。
投稿者: yusuke | 2005年01月20日 19:19
日時: 2005年01月20日 19:19
> Tomcat5の場合は、server.xmlのConnectorタグに、
> URIEncoding="utf-8"を追加することで、日本語でも問題なくなる)。
とのことですが、
ServletからJSPへdispatchした場合に、
JSP上で
String japanese = request.getParameter("xxx");
とすると、japanese変数が文字化けしてします。
これは、dispatchしたときに、URIEncoding="utf-8"の設定がクリアされてしまうからだと思うのですが、なにか回避方法がないものでしょうか?
投稿者: aiueo | 2005年04月07日 11:59
日時: 2005年04月07日 11:59
arclamp.jpのyusukeです。aiueoさん、設定がクリアされることはありえません。JSP側のエンコードの問題では。そもそも、Blojsomの話でしょうか?
投稿者: yusuke | 2005年04月10日 12:24
日時: 2005年04月10日 12:24
こちらの記事を読ませていただき、本日急遽入ったばかりのX ServeのTigerでBlojsomベースと言われるWeblog機能を触ってみました。よかったら見てやってください。非常に簡単ですが、それ以上やるにはアップルやユーザー有志のサポートがないと難しそうです。でも、社内でお手軽にBlogを立ち上げられるのは、なにかかき立てられる想いがします。
投稿者: chandra | 2005年05月12日 20:40
日時: 2005年05月12日 20:40
yusukeです。chandraさん、コメント&情報ありがとうございます。
おお!さすがMacですねデザインがかっちょいい。そして、エントリ画面が気になります。オープンソース版のと明らかに違うようですね。うーん、実際に触ってみたいです。
たしかにお手軽感は大きな動機になりますよね。BlogにもMacらしいアイデアがつまっているのですね。
投稿者: yusuke | 2005年05月14日 16:10
日時: 2005年05月14日 16:10
私もgoogleでここにたどりつき、記事を参考にさせていただきました。
ありがとうございます。
学校で使おうとしているため、相当数のユーザーを抱える見込みです。
MacOS X Server付属のこのシステムでどこまで使えるか見ていくつもりです。
使い始めるのはマウスでチェックボックスをクリックして、ブラウザでドメイン名/weblog/にアクセスするだけというお手軽さです。
テンプレートが4つしかなく、プラグインの追加もまだ
どうやってやるのかわからないなど色々課題はあるのですが、どれほど多数のユーザーになろうとも無償で使えるのはありがたいかぎりで、これから色々勉強していこうと思っています。
それでは^^。
投稿者: RED.PINE | 2005年09月06日 13:03
日時: 2005年09月06日 13:03
yusukeです。RED.PINEさんコメントありがとうございます。教育の現場にもBlogが導入されるんですね。感慨深いですw。
Blojsomのカスタマイズは、ちょっとたいへんかもしれませんが、がんばってチャレンジしてみてください。なにかの参考になれば幸いです。
投稿者: yusuke | 2005年09月06日 13:24
日時: 2005年09月06日 13:24