EtupirkaはGAE上で動作するJavaで実装されたCMS。
アーキテクチャ
GAE/J
実行環境はGoogle App Engine/Javaとなる。 したがって、GAE/Jの持つ制限は全て適用される。
また、データストアも必然的にBigTableとなる。
T2 Framework
URLディスパッチなどフロントの処理はT2 Frameworkを採用。 T2 Frameworkを採用することで、関連する処理をPageクラスにまとめ安く、URLパターンの設定も容易となる。また、将来的にRIAクライアント拡張をする予定もあるため、レスポンスを拡張しやすい。
slim3
slim3は単体でGAE/J用のフレームワークとして十分なポテンシャルを持つが、後述のテンプレートエンジンPirkaの採用やCMSのURLパターンには相性があまり良くない為、Datastoreのみを採用する。~ slim3のDatastore APIはS2JDBCのようなタイプセーフなインターフェイスを持ち、JDO,JPAを用いるよりも解りやすく実装もやりやすい。
pirka
View層のHTMLテンプレートエンジンとしては、pirkaを用いる。~ pirkaはXMLと独自属性を用いたテンプレートファイルを用いる為、WEBデザイナがローカル環境で確認しやすく、宣言的な文法でテンプレートを構築できる。CMSにおいて重要な要素であるテンプレートの作成しやすさを重視している。
Google Guice
DIコンテナとしてguiceを用いる。~ guiceの設定ファイルにてプラグインの制御や、各種フレームワークの依存性を吸収する。
