バグ #1429
未完了rtc-template で module を含むIDLを与えるとエラーになる
0%
説明
rtc-template で module を含むIDLを与えるとエラーになる
ML 00909にて指摘。
OpenRTM-aist開発者の皆様
九州工業大学 小田謙太郎と申します。
rtctemplate 0.4.2 において、moduleを含むIDLを入力とするとエラーが発生する問題について、報告いたします。
=== IDL ここから ====
module mymodule {
interface MyService {
};
};
=== IDL ここまで ====
この IDL を 以下のコマンドラインでrtctemplate(CUI Java版)を起動します。
=== コマンド ここから ====
java jp.go.aist.rtm.rtctemplate.CuiRtcTemplate
--output=. --backend=java --module-name=Hoge --module-desc=Foo
--module-vender=GaGa --module-category=Provider
--module-comp-type=DataFlowComponent --module-act-type=SPORADIC
--module-max-inst=1
--service="myservice:myservice0:mymoduel::MyService"
--service-idl=Module.idl
=== コマンド ここまで ====
クラスパスは、必要なものが通してあると仮定しています。
このコマンド結果が次に示します。
=== 結果 ここから ====
Invalidated argument for:[--service] args:[myservice, myservice0, mymoduel, , MyService]
Generate fail.
=== 結果 ここまで ====
このように、テンプレートの生成に失敗してしまいます。
これは、module の区切り文字である"::"がrtctemplate の区切り文字と
重複して扱われているのが原因ではないかと思います。
一方、Eclipse上で動作するGUI版のrtctemplate 0.4.2によるJavaテンプレート生成については、
この区切り文字のコンフリクトはおきませんが、生成されるコードに以下の記述が見られます。
mymodule::MyService
Java言語では::は機能しませんので、エラーが発生してしまいます。
mymodule.MyService
と生成されるべきかと思います。
以上エラーの報告でした。
ご対応検討いただければと思います。