Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
ほその日記
[go: Go Back, main page]

Hatena::Diarytri はてなブックマーク はてなフォトライフ
    
はてな
 ようこそゲストさん  最新の日記 ユーザー登録 ログイン ヘルプ

ほその日記

ここはほそ日記です。


Seasar2の情報はこちらをクリック!
アンテナ依存症加速装置とはここにマウスを置いてください
アンテナ依存症加速装置 for Eclipse Plugin<開発中!

2004-09-17

[][] S2FlexV1.0.1リリース23:16 このエントリーを含むブックマーク

http://www.seasar.org/

http://sourceforge.jp/projects/seasar/

S2FlexがAction Script2に対応です!!

[] では出かけてきます。 15:02 このエントリーを含むブックマーク

ひーひー。大忙し(苦笑)

[][] オブジェクトの変換ルール 14:44 このエントリーを含むブックマーク

#まだ殴り書きですので、正式な変換ルールはS2OpenAMF1.0.5のドキュメントとして添付します。1.0.5の正式リリースは来週末を目標にしています。

呼び出し先のメソッドの定義が大きく影響します。

  • メソッドの引数がList以外の場合(ObjectやJavaBeans)
    • _remoteClassを指定していなくても正しくJavaBeansへマッピングされます。
      • ただしメソッドをオーバーロードしているクラスのメソッドを呼び出す場合は、_remoteClassを指定していないと、正しく呼び出せない場合があります。呼び出せないパターンについては後日書きます。
  • メソッドの引数がListの場合の要素の変換
    • _remoteClassを指定しないと要素はHashMapになります。
    • _remoteClassを指定していると要素はJavaBeansになります。
    • Number, Dateなどその他オブジェクトは正しく変換されます

変換パターンの一部を下記に示します。

_remoteClassを設定している
Flash Java
Object JavaBeans
AS2Class JavaBeans
Array
 └ Object
ArrayList
 └ JavaBeans
Array
 └ AS2Class
ArrayList
 └ JavaBeans
_remoteClassを設定していない
Flash Java
Object JavaBeans
AS2Class JavaBeans
Array
 └ Object
ArrayList
 └ HashMap
Array
 └ AS2Class
ArrayList
 └ HashMap

これは正規品にも言える事ですが、以下の事を守れば正しく動作します。

  • メソッドをオーバーロードしない(最低限引数の数を変える)
    • 呼び出すメソッドの決定ができなくなり、変換すべき型を決定できないから
  • Arrayの中にAS2Class, Objectを格納する際は_remoteClassを指定する
    • _remoteClassを指定しないとJavaへのマッピングの際、型情報が取れず、複数のJavaBeansへの変換ができないから
    • Flex, Flash Remoting MXは_remoteClassを指定しないと、ASObjectが要素のArrayListに変換されます。

[][] S2OpenAMF1.0.5RC1リリース14:26 このエントリーを含むブックマーク

http://sourceforge.jp/projects/seasar/

[][] リリース間近 13:52 このエントリーを含むブックマーク

今日リリース予定ですが、今日のリリースはRC1という事にしておきます。ドキュメントの整備とサンプルの用意が間に合わないからです。何に間に合わないかというと今週末に間に合わない…。今週末、私はパソコンに触れられない環境へ旅立つ予定なので、今日を逃すとリリースがちょっと先になってしまうのです。RC1でバグと要望の意見を集めて、正式リリースバグを直し、要望を盛り込みたいです。

[] プロマシアの呪縛 11:13 このエントリーを含むブックマーク

買ってしまった!!いつ封を開けて、いつプレイするか…10日後か1ヵ月後か3ヵ月後が創造もつきませんが、気が向いて、時間があったら遊びます。昨日は昼頃から鯖落ちしてたみたいで、先行組は悲しい思いをした事でしょう(^_^;。1日10時間とかプレイしてた土日が非常に懐かしいです。おととしくらいの記憶ですが…。

[] OpenAMFの可能性 11:10 このエントリーを含むブックマーク

既に様々なServiceInvokerがあって、正規品と遜色なくAxisEJBを呼び出す事が可能ですが、さらに機能を追加する事も可能です。今、言っている機能の追加はServiceInvokerの追加ではなく、ServiceInvokerに対して新しい指示を出す方法です。アノテーションをFlashから指定するような感じでいかようにでもサーバサイドの機能をいじれるというイメージです。

その一例が_remoteClassです。これはたまたまMacromediaが指定している固有のプロパティですが、Flashにはプロパティの名前の制限がありませんので、自前で自由に定義できるわけです。例えば…おもしろい使い方がパッと出ませんが、_sleep = '5000'を指定したオブジェクト引数に渡した場合、5秒待機してから処理を開始する。_async = trueを指定したオブジェクト引数にした場合は、メソッドの呼び出しが排他され処理が待ち行列に追加される等。

これで新しいFlashの使い方、開発方法を模索できないかなぁと思っていて、何か応用して使いたい所です。ちなみにこれはFlexでも可能です。Adapter作れば良いだけですから!

[] Flash Remotingを使う場合に気をつけたい事 11:04 このエントリーを含むブックマーク

Flashサーバサイド(Java)をつなぐ時にインターフェースを設計しますよね。そこで確実に注意しておこうかなと私が今考えている事を書いてみようと思います。注意するのは全てJava側です。

簡単に説明するならば、Flash引数の型が違うだけのメソッドを呼び出しづらいって事です。_remoteClassが記述されていれば、呼び出すメソッドの決定はとても容易なのですが、指定されていない場合、型が定まらないので呼び出し先のメソッドを確実に決定できません。OpenAMFランクで言うと85となっていて、100ではありません。なのでOpenAMF自信も確実では無いが、一応呼び出してみたという感じになっています。ランクが下がるのはFlash Remotingのこういう特性を意識しないで、サーバサイドのメソッドを定義しているからです。ここだけ気をつけていればメソッドが正しく呼ばれないし、引数の型が意図した型で送られてこないという事はありません。

[][] 仕様をどうしよう 10:45 このエントリーを含むブックマーク

下記2つのエントリをふまえると、_remoteClassが設定されていないObjectはASObjectにマッピングしないと、AMFGatewayとコンパチとは言えません。がしかし、今現在S2OpenAMFはJavaBeansにマッピングしちゃってます。マッピングの仕組みが違う方法を取っているからです。仕組みについてはリリース前に詳しく書く予定です。とりあえずリリースしちゃって、コンパチじゃないと駄目!とか、マッピングしてくれた方が嬉しいとか意見を集めようかなと思います。それによってコンパチレベルの設定で仕様を切り替えられるようにしたり、2つのInvokerServiceを提供する方法が考えられます(後者にすると思いますが)。

[] ObjectをJavaBeansにマッピングさせる方法 10:39 このエントリーを含むブックマーク

一つ下のエントリの解決策はObjectに_remoteClassプロパティを設定する事です。

    var object = new Object();
    obj.id = 'ID';
    obj.name = 'NAME';
    obj._remoteClass = 'packageName.ClassName';

これでちゃんとJavaBeansにマッピングされ、メソッドも正しく呼び出されます。Arrayに格納されたObjectもちゃんと、ArrayListに格納されたJavaBeansへと変換されます。

[] AMFGatewayはObjectをJavaBeansにマッピングしない 10:37 このエントリーを含むブックマーク

Flash RemotingのgatewayFlashのObjectをJavaBeansにマッピングしてくれたと思ったのですが、FlexのAMFGatewayはマッピングしてくれません。具体的にどんなObjectかというと

    var object = new Object();
    obj.id = 'ID';
    obj.name = 'NAME';

これを

    public class Hoge {
        private String id;
        private String name;
        /* setter/getter省略 */
    }

というJavaBeansにマッピングしてくれません。じゃぁ何で渡ってくるかというと、ASObjectで渡ってきます。オーバーロードされたメソッドは定義していません。確実にASObjectで渡ってきます。Arrayに格納されたObjectもArrayListに入ったASObjectで渡ってきてしまいます。OpenAMF(Flash Remoting MX)はちゃんとJavaBeansにマッピングしてくれるんですけどね。

[] メーリングリスト…って言うのか? 09:51 このエントリーを含むブックマーク

なんかプロジェクト関連のメーリングリストに登録されたらしいのですが、一向にMLからメールが届きません。山ほど届くのはCCにズラーっと人が並んだメール。もしかして…この人達CCで全員にメール出してるのか!!それをメーリングリストと呼んでいるのか!!確かにメーリングリストと呼んでも良いのかもしれませんが、非常に非効率です…。というわけで状況の改善を提案する予定。アドレス帳を使えばとても簡単にこういう事は実現できますが、本物のメーリングリスト設置しましょうよ。絶対便利ですから〜

[] 18〜21日不在です(土, 日, 祝) 02:50 このエントリーを含むブックマーク

日記を付け始めてからもう217日。1日だって書かなかった事はありませんでした。いや、むしろ書けなかったという事がありませんでした。これは確実に毎日パソコンを触っているという事で中毒極まりない!!もちろんケータイ更新なんてしてないので、確実にパソコンを触っています。雨の日も風の日も旅行の日も風邪の日もなぜかサボる事無く続けています。

がしかし、今回初めてパソコンを持たずに外出します。よって初めて日記更新が無い日が!完全にインターネットから切り離されて過ごすつもりなので、パソコンによる連絡は一切取れません。一応休日なんで動いて欲しい時はケータイまでご連絡を…手を伸ばせばすぐ自宅にいるのと同じ状態になると思いますんで。

# makotan 『大丈夫だよ。ケータイからでも日記は更新できるんだから。』

# hoso-kawa 『たまにゃネットから切り離されてみたいわけよ(w』

# makotan 『そういえば、大阪のからさわぎで「ほそのかわたろう」って言ったら誰の事かわかったらしい。「ほその」定着おめでとう!!(笑)』

# hoso-kawa 『わーいわーい♪って日記上部にも強調して書いてあるのに、時代の流れは「ほその」か(w』

# MIZOMIZO 『『Flash Remotingを使う場合に気をつけたい事』に対する質問です。
1.呼び出し側のクラスってクライアントFlash
2.だとすると、as2はオーバーロードってできるの?』

# akon 『プロマシアの呪縛、封を開けました。一歩リード!』

# hoso-kawa 『MIZOMIZOさん>あー、ごめんなさい。呼び出し側ではく、呼び出し先のクラスでした。Javaのメソッドの話です。AS2はメソッドのオーバーロードできないですね。』

# hoso-kawa 『akonさん>負けてられない!という事で封を開けました。説明書まで読みました!これで同じラインには立ったはず(w』

# higayasuo 『S2OpenAMFの_remoteClass対応早くリリースして。
S2Flexは、ASTranslator(Flex版)のパッケージが
1.0と1.5で違ってしまったので、1.5のみに対応しようと思ってます。
つまり、Flash, Flex1.0はS2OpenAMFで、
Flex1.5はS2Flexで。』

# hoso-kawa 『了解しました!
とりあえずソースだけでも今日中に公開できるようがんばります。』

# akon 『抜かれた・・・説明書は字があまりに小さいので停滞しています・・・』

# hoso-kawa 『新しいエリアの説明くらいしか無かったデスヨ。早くヤリターイ!』