SHIORI 追加モジュール

プラグインタイプとして「shiori」を返すプラグインは、SHIORIの追加モジュールとして認識されます。
本体に内蔵されたSHIORIモジュールに加えてゴーストを起動する際のSHIORIの候補となります。

home
 +-plugin
   +-kawari
       +-alias.txt
       +-debugshiori.jar

偽林檎はSHIORIモジュールをロードすると、まずGET Version SHIORI/2.0をリクエストします。
このリクエストに対し「SHIORI/2.0 204 No Content」など2.xでの応答を返せばそれ以降のリクエストはSHIORI/2.xで行なわれ、 「SHIORI/3.0 204 No Content」のように3.xでの応答を返せばそれ以降はSHIORI/3.xでリクエストが行なわれます。

SHIORIモジュールは以下のメソッドを実装している必要があります。


■コンストラクタ

コンストラクタにはjava.io.Fileで起動しようとしているゴーストの所属するディレクトリ(通常は[home]/ghost/master)が渡されます。
モジュールが作業用ファイルを作成したりする場合には必ずそのディレクトリ内で済ませてください。
省略は不可能です。

public Kawari(File ghost_root)


■getModuleName()

SHIORIモジュールの名前を返して下さい。これはゴーストマネージャに表示されます。
省略不可能です。
public static String getModuleName()


■getModuleInfo()

SHIORIモジュールの詳細情報を返して下さい。これは環境設定のプラグイン一覧に表示されます。
省略可能です。
public static String getModuleInfo()


■notifyRootDir()

これはプラグイン自体のファイルシステム上の位置を知らせる為に、本体が呼ぶstaticメソッドです。
コンストラクタによって一つ目のインスタンスが生成される前に呼ばれる事が保証されています。
省略可能です。
public static void notifyRootDir(File dir)


■notifySaoriPath()

これはSAORIのdarwin用バイナリが入っているパスを知らせる為に、本体が呼ぶstaticメソッドです。
形式はコロン区切りの絶対パスで、通常は"home/saori"の絶対パスが渡されます。
SAORI_FALLBACK_PATHに設定される事を想定しています。(→POSIX上のSAORIについて)
このメソッドはコンストラクタによって一つ目のインスタンスが生成される前に呼ばれる事が保証されています。
省略可能です。
public static void notifySaoriPath(String path)


■checkIfUsable()

java.io.Fileで起動しようとしているゴーストのディレクトリ(通常は[home]/ghost/master)が渡されます。
モジュールが渡されたゴーストのSHIORIを処理出来るならtrueを、出来なければfalseを返して下さい。
メインプログラムはcheckIfUsable()がtrueを返したSHIORIモジュールをそのゴーストの為にロードします。
省略不可能です。
public static boolean checkIfUsable(File ghost_root)


■terminate()

ゴーストが終了する際に呼ばれます。
このメソッドが呼ばれた後ではメインプログラムからモジュールにアクセスされることは有りません。
省略可能です。
public void terminate();


■request()

SHIORI/2.0または3.0プロトコルを用いてメインプログラムとの通信を行うためのメソッドです。
java.lang.Stringでリクエスト文(各行はCRLFでセパレートされている)が渡されるので、
それに対するレスポンスをjava.lang.Stringで返して下さい。
尚、リクエストにCharset:ヘッダは付きません。
省略不可能です。
public String request(String req);