Skype連携ソフトの複数デバッグを一つのマシンで行えれば、やりとりを行うソフトの開発が非常に楽になります。
ですので、今日はこの方法を探ってみました。
まずは、Skype自体を複数アカウントで起動します。
その方法は、以前のitmediaの記事「Skypeを2つ同時に起動する」に詳しいです。
上記記事では、Windowsに標準搭載のrunasコマンドを使っています。
ですが、毎回パスワード入力するのが面倒であれば、
等をインストールして使う手もあります。
次はSkype連携ソフト自体を複数アカウントで起動する方法です。
通常のEclipseの起動オプションでは、別アカウントでJavaアプリケーションを起動という選択肢がありません。
いろいろ探しましたが、このような目的を実現するEclipseプラグインも発見することができませんでした。
となると、自分でプラグインを作るしかありません!
最初はEclipseのアプリケーション起動関係のフレームワークについて、「The Launching Framework in Eclipse」を読んで調査します。
その後、EclipseのJavaアプリケーション起動のコードを読んでいくと、内部ではjava.lang.Runtime#execを呼び出してプロセスを起動していることが分かりました。
起動後は、java.lang.Processインスタンスがそのまま保持されて制御に使われています。
Processインスタンスを使わない形に変更してプラグインを実現するとなると非常に多くのコード修正が必要そうです。
ですので、この仕組みはそのまま使う形でプラグインを実装することにしました。
方向性が固まったので、次は別アカウントで実行されたプロセスに結びつくjava.lang.Processインスタンスを生成する方法を考えなければいけません。
Processクラスを拡張 + JNI等を使って、別アカウントでのJavaアプリケーションと結びつく独自のクラスを作ることも可能ですが非常に大変です。
ですので、上記のRunAsXコマンドを使ってラップして実現します。
java.lang.Processインスタンスを作る前に、RunAsXコマンドを使う形にコマンド文字列を修正して、java.lang.Runtime#execに渡す方法です。
この仕組みを実現するため、既存のメソッドの一部を変えたいのですが、Eclipseの既存のクラスがこのような拡張を意図して作られていません。
ですので、メソッドレベルではなく、クラスレベルで構造を変える形で挑戦してみます。
結構なコード量が必要でしたが、この形で別アカウントでの起動に成功しました!!!
起動に成功したので、設定を行う起動ダイアログ等も作り込んでみました。
このプラグインで別アカウントのJavaアプリケーションをデバッグしている画面です。
残りの問題や改良を加えたら、Skype連携ソフト開発用Eclipseプラグインとして公開したいと思います。
2008年5月24日土曜日
2008年5月17日土曜日
Skype4Java 2.0の計画
Skype4Java 1.0をリリースしてから一年半ほど経つので、Skype4Java 2.0をリリースしたいと思っています。
メジャーバージョンアップするにあたっては、世界最高水準のライブラリを目指したいので計画をまとめてみます。
2.0では五つの方向性で機能を向上させます。
「安定性の向上」
メジャーバージョンアップするにあたっては、世界最高水準のライブラリを目指したいので計画をまとめてみます。
2.0では五つの方向性で機能を向上させます。
「安定性の向上」
- Mac、Linuxコネクタの修正
- 実装をJNAに変更
- アプリケーションAPIレベルでテストカバレッジ100%の達成
- Skype4COM、Skype4Pyと同レベルのSkype APIサポート
- AP2AP機能を使ったRMIサポート
- 使いやすい音声録音機能
- mp3、OggVorbisへのリアルタイム録音
- 会議通話の録音サポート
- mp3、OggVorbisへのリアルタイム録音
- Maven2セントラルリポジトリへの登録
- jarのeclipseプラグイン化(OSGiバンドル化)
- 日本語のjavadoc追加
- 状態遷移図の追加
- Appletでの利用例
- JNLPでの利用例
- サーブレットでの利用例
- RESTful Webサービス化
- 各種マッシュアップアプリケーション
2008年5月10日土曜日
Skype APIを使ってSkype連携ソフトを作る最初の一歩
Skype APIを使うことにより、Skypeと連携するソフトを作ることができます。
Skype APIを使い始めるにあたっては、まずSkype自体について情報収集しなければいけません。
Skype APIを使い始めるにあたっては、まずSkype自体について情報収集しなければいけません。
- Skypeの基礎知識を習得
- Skype公式サイトで製品、サービス情報をチェック
- Wikipedia(日本、本家)でSkypeの概要、歴史、関連情報をチェック
- Skypeの動作の仕組みについて学ぶ
- Skypeのキーワード「P2P」へのセキュリティ懸念への反論を学ぶ
- Skypeの業界動向を調査
- Skype市場の成長、大きさについて学ぶ
- Skypeハードウェアについて学ぶ
- Skypeソフトウェアについて学ぶ
- Skypeの過去のニュースや動きを調査
- Skype NewsブログのSkypeカテゴリの過去エントリをチェック(その1、その2、Skype関連製品カテゴリ)
- にっき (n-yoshi@lares)ブログのSkypeカテゴリの過去エントリをチェック
- Skype日本語ブログの過去エントリをチェック
- Skypeの最新情報が集まる仕組みを作る
- Skype関連のブログのRSSを登録
- SkypeキーワードのRSSを登録
- Googleアラートに追加
- Twitterユーザを追加
- Skype関連のブログのRSSを登録
- Skype APIの入門記事で学ぶ
- Skype API仕様書に目を通す
- 自分が使っているプログラミング言語用のSkype APIライブラリを選ぶ
- 簡単なアプリケーションを作ってみる
- Skype APIの最新情報が集まる仕組みを作る
- Skype API関連のブログのRSSを登録
- Skype API関連のブログのRSSを登録
- Skype Extraにして販売する方法を学ぶ (Skype Extraにせず、普通のアプリケーションのままリリースすることも可)
登録:
投稿 (Atom)