[Java, Mobile] WebSocket Client on Android – Tyrus

原文はこちら。
https://blogs.oracle.com/PavelBucek/entry/websocket_client_on_android_tyrus

Java EEライブラリやフレームワークを標準に準拠していないVMで実行するのはそれほど珍しいことではありませんし、それはTyrusにおいても同じです。この作業は主としてReza RahmanからのTYRUS-256という課題レポートで始まったと認めなければなりません。
Project Tyrus (JSR 356: Java API for WebSocket - Reference Implementation)
https://tyrus.java.net/
TYRUS-256 (Support Client API on Andriod)
https://java.net/jira/browse/TYRUS-256
Reza Rahman
https://blogs.oracle.com/reza/
Dalvik上でのTyrusの実行を公式にはサポートしていませんし、これがいい考えなのかわかりませんが、重要なこととして、Tyrusは動作し、必要なら動作するようにできる、ということです。

Android上での動作を妨げる問題は、javax.naming.InitialContextクラスの利用に集約されています。簡単な代替策はありませんが、幸運にも、そのクラスがないならその依存性を取り除くためのリフレクションハッキングを行うことも可能性として存在します。残りはサンプルアプリケーションを作成しスマートフォン上でテストすることでしかなく、それほど大変なことではありませんでした。IntelliJ IDEAチームのAndroid Studioに対してではなく、サポートに対し賛辞を申し上げなければなりません。gradleをビルドツールとして利用しており、(もしかしてみなさんはご存知かもしれませんが、筆者はgradleについてそれほど詳しくないのです)AndroidプラグインがJavaプラグインと衝突するため、Javaライブラリをインクルードできなかったのです。ビルドスクリプトとサポートを利用することが今回のタスクにとって有効でした。

テストに使用したアプリケーションをワークスペースのgithubにUpしました。
Test project used to debug Tyrus Client runtime on Android
https://github.com/pavelbucek/tyrus-client-android-test
ご自由にテストし、pull requestを提供してください。gradleのビルドスクリプトに特に興味があります。

今日はこれでおしまいです。AndroidでTyrusを使ったり、関連するコメントがあれば、Tyrusのメーリングリストや機能拡張リクエストとしてご意見をお知らせ下さい。
TyrusのJIRA
https://java.net/jira/browse/TYRUS

0 件のコメント:

コメントを投稿