MAP | PageMixer ドキュメント > 移行手引き |
本ドキュメントは、 PageMixer の旧版から新版への移行手順に関して説明します。
あなたのクラスが以下のクラスフィールドに依存している場合、 再コンパイルが必要です。
Object
" 型ではなく、
具体的なクラス型で定義されています。
再コンパイルをしない場合、
実行時に NoSuchFieldError
が浮揚される可能性があります。
ロケールに応じた描画を行うためのクラス群は体系的に再設計されており、 それをわずかな記述で説明するのは容易ではありません。
ロケールに応じた描画に関する現行仕様の詳細に関しては、 "ロケールに応じた描画" チュートリアルを参照してください。
Servlet 環境関連のクラス群は体系的に再設計されており、 それをわずかな記述で説明するのは容易ではありません。
PageMixer の Servlet 環境対応の現行仕様に関する詳細は、 "Servlet 環境における利用" を参照してください。
ErrorsFilter
の改名以外の
Struts 連携に関する 2.x 版から 3.x 版への移行の殆ど全ては、
Servlet 環境関連移行のそれです。
新規クラス ErrorsInsetFilter
導入のために名前が変更されたので、
ErrorsFilter
を
ErrorsTrimFilter
に改めてください。
*Watcher
に関する移行本節では、
*Watcher
インタフェース
(TokenWatcher
および SequenceWathcer
)
の変更に関して説明します。
*Watcher
開発者にとっての移行
*Watcher
を含む Filter
の再利用性を向上させるため、
2.0 版から、
*Watcher
インタフェース定義は、
自身の持つ処理文脈に関する情報をクリアするためのメソッド
"clear()
" を持っています。
*Watcher
開発者であるあなたは、
仮にあなたの作成したクラスが処理文脈に関する情報を保持していなくても、
"clear()
" メソッドを定義する必要があります。
Filter
開発者にとっての移行前述のように、
*Watcher
実装は "clear()
" を持っていますので、
あなたの固有クラスが *Watcher
を使用しているのであれば、
Filter
開発者であるあなたは、
Token 列の最後(すなわち flush(ConsumerContext)
メソッドにおいて)
でこのメソッドを起動しなければなりません。
あなたの固有クラスが以下の条件を満たすのであれば、 特に何かする必要はありません。
*EditFilter
クラスの派生クラスで、且つ
flush(ConsumerContext)
メソッドを上書きしていない
LocalePage
に関する移行本節では、
LocalePage
クラスの変更に関して説明します。
LocalePage
利用者にとっての移行2.0 版から、
LocalePage.ByParser
(または LocalePage.ByPersistentProducer
)は、
LocatorLocalePage.ByPageParser
(または LocatorLocalePage.ByPersistentProducer
)
によって置き換えられました。
上記クラスのコンストラクタを起動するためには、
以下に示す Locator
実装から1つ選ぶか、
自身で Locator
を実装する必要があります。
Locator.ByClass
Class#getResourceAsStream
を用いてデータを読み込みます。Locator.ByServletContext
ServletContext#getResourceAsStream
あるいは
Class#getResourceAsStream
を用いてデータを読み込みます。Locator.OnLocalFS
FileInputStream
を用いてデータを読み込みます。
このクラスは、変更時におけるデータの再読み込みを可能にします。Locator.OnWebApp
FileInputStream
を用いて読み込みます。
このクラスは、変更時におけるデータの再読み込みを可能にします。LocalePage
開発者にとっての移行"1.x" 版と "2.0" 版の LocalePage
は、
手短に説明するには違い過ぎます。
そのため、詳細に関しては API ドキュメントをご覧ください。
一見、複雑になったと思われるかもしれませんが、 固有実装が容易になったと考えています。
Struts 連携に関する移行のための作業項目は以下に示す2点あります。
MixerServlet
" から
"StrutsPage
" に変更する
shouldForward
" メソッドの定義を変更する
2.0 版から、
MixerServlet
は、
PageServlet
派生クラスの
StrutsPage
で置き換えられ、
配布物に含まれなくなりました。
固有のプレゼンテーション Servlet の基底クラスを
MixerServlet
から StrutsPage
に変更してください。
その後、
"shouldForward
" メソッドの定義を補正する必要があります。
1.x 版では、
このメソッドは1つの引数(ConsumerContext
)を持ち、
boolean
値を返すことを期待されていました。
しかし現在、
このメソッドは2つの引数(ConsumerContext
および
デフォルトの制御遷移先値としての String
)を持ち、
制御遷移先としての String
の返却を期待されています。
そのため、 行うべきことは、 (制御遷移したい場合は)与えられた制御遷移先あるいは (それ以外の場合は)null を返却することです。
MAP | PageMixer ドキュメント > 移行手引き |