-------------------------------------------------------------------------------
 Phosphoresce ResourceComparerator README
-------------------------------------------------------------------------------
                                                                     2008/03/17


■ 概要

  都度更新が発生するリソースにおいて、差分抽出を容易に行うツールです。
  各種処理については、ストラテジ/ファクトリパタンを採用しており、コアなソースを
  修正することなく、処理を拡張することが可能となっています。


■ 動作環境

  ・JRE1.4以上


■ ストラテジクラス

  ツール起動クラス、リソース保持コンテナ(アルゴリズムによって速度が変わる想定)、
  リソース抽出時フィルタクラス、リソース比較ロジック、比較結果出力、リソース出力
  クラス及び、処理時モニタークラスは、それぞれ、ストラテジパタンを用いており、
  外部定義によって動作変更が可能となっています。
  ディフォルトビルドインクラス仕様は以下の通りです。
  
  □ ツール起動クラス
    このクラスはCUI、GUIからの起動や、バッチのように定期的に固定パラメータで
    繰り返し起動するような処理に容易に切り替えることを目的としています。
    
    ・org.phosphoresce.resourcecomp.cui.CUIExecuter
      コマンドラインからの起動を行うためのクラスです。
      現時点ではGUIからの起動クラスは用意していません。
  
  □ リソース保持コンテナクラス
    このクラスはリソースの保持方式を後に変更することで、メモリ消費量や速度の
    向上を目的としたクラスで、通常はビルドインクラスでの使用を想定しています。
    
    ・org.phosphoresce.resourcecomp.plugin.container.CompareDOMContainer
      XMLドキュメントオブジェクトモデルによるリソース比較情報を保持します。
      リソースオブジェクトクラス自体の保持は行わず、メモリ消費はDOMに依存します。
  
  □ リソース抽出フィルタクラス
    このクラスは比較対象とするリソースを抽出する際に、除外したいファイルを
    任意に指定可能とすることを目的としています。ディフォルトビルドインクラスは
     Propertiesに定義された無視文字列を持つリソースを除外します。
    
    ・org.phosphoresce.resourcecomp.plugin.filter.ResourceIgnoreFilter
      定義Propertiesに定義された文字列を含むリソースを比較対象から除外します。
      定義体は通常のPropertiesではなく、当クラス固有のものとなります。
  
  □ 処理時モニタークラス
    このクラスは各種処理中に動作をモニタリングすることを目的としています。
    GUIベースのクラスを起動クラスに指定した場合等にプログレスウィンドウ等で
    情報を取得するためのリスナークラスとして使用することが可能です。
    
    ・org.phosphoresce.resourcecomp.plugin.monitor.ProgressSystemoutMonitor
      実行フェーズ及び処理状況を標準出力に出力します。
  
  □ リソース比較ロジック
    このクラスはリソースの比較ロジックを切り替えることを目的としています。
    ディフォルトビルドインクラスとしては、ファイルサイズでの比較、更新日時での
    比較、CRC32チェックサムでの比較を行うクラスが用意されており、加えて、複数の
    比較ロジックをチェーンさせるクラスが用意されています。
    
    ・org.phosphoresce.resourcecomp.plugin.strategy.ChainingStrategy
      定義Propertiesに定義された他のストラテジクラスを定義順に実行します。
      当クラスはチェーン機能を目的とし、単体での比較ロジックは保持しません。
    
    ・org.phosphoresce.resourcecomp.plugin.strategy.FilesizeCompareStrategy
      ファイルサイズでのリソース比較を行います。
      但し、中身の比較は行わないため、当クラス単体での使用は推奨しません。
    
    ・org.phosphoresce.resourcecomp.plugin.strategy.TimeStampCompareStrategy
      ファイル更新日時のリソース比較を行います。
      但し、中身の比較は行わないため、当クラス単体での使用は推奨しません。
    
    ・org.phosphoresce.resourcecomp.plugin.strategy.CRC32CompareStrategy
      ファイルリソースのCRC32チェックサムでの比較を行います。
      バイナリレベルでの比較を行うため、正確ではありますが、低速となります。
  
  □ リソース比較結果出力クラス
    このクラスは比較結果を出力する際の形式を切り替えることを目的としています。
    ディフォルトビルドインクラスとしてはCSVに情報を出力しますが、用途に応じて
    ログに出力したり、JavaMailを用いたメール送信、POIを用いたExcelへの出力
    等の拡張クラスを指定することが想定されます。
    
    ・org.phosphoresce.resourcecomp.plugin.writer.ResultCVSWriter
      リソース比較結果をCSVで出力します。
  
  □ リソース出力クラス
    このクラスは比較結果のリソース出力方式を切り替えることを目的としています。
    ディフォルトビルドインクラスとしては指定されたファイルパスに対してリソース
    をそのまま出力しますが、用途に応じてZIP圧縮して出力する等のクラスに変更する
    ことを想定しています。
    
    ・org.phosphoresce.resourcecomp.plugin.writer.ResourceFileWriter
      差分リソースをファイルに出力します。




--
                                            http://phosphoresce.sourceforge.jp/
                                   http://sourceforge.jp/projects/phosphoresce/
                                                              Hisanori Kitagawa

