-S2Sio仕様
昨日、ファウンデーションの理事会の後に羽生さんに様子を聞いたところ、ひがさんの提案もあってSIO("シオ"と読むらしい。羽生さんが言ってたのを聞いてる中、"シオ"がSIOのことを指しているのに気がつくまで時間かかった)の仕様案をディスカッション。
追記
コメント欄による名称変更ツッコミにあわせて、SAOに変更。実装組んでみて仕様調整。以下、修正済みです。
diconファイル
<components> <component class="org.seasar.sao.rhino.RhinoScriptEngine"/> <component name="sao" class="org.seasar.sao.SaoInterceptor"/> <component class="sample.Speaker"> <aspect>sao</aspect> </component> <component name="userManager" class="sample.UserManagerImpl"/> </components>
SAOインターフェイス(Speaker.java)
@ScriptFile("sample/Speaker.js") // 規約に従っているので省略可能 public interface Speaker { String say(String name); @ScriptMethod("sleep") String message(String msg); }
JavaScriptファイル(Speaker.js)
function say(name) { var fullName = userManager.getFullName(name); return 'hello ' + fullName; } function sleep(name) { return 'zzzzz...' + name; }
そして、Tiger限定です。SAOインターフェイスとJSファイルが対応し、SAOメソッドとJSメソッドが対応するようにしました。とりあえず、スクリプトファイルのタイムスタンプを見てリロードする機能はやめ。