ResourceSynchronizer 0.0.1 リリースしましてん。
多分、Javaで開発する時には、eclipseを使うかと思うのだけど、
eclipseのユーザである事と、eclipseプラグインの開発者である事は、
Javaのプログラマであっても、海より深い溝があると思います。
Antやmaven、NTスクリプトや、Ymirみたいに、
eclipseの外側でリソースを作る事って、まぁ、それなりにあったりする。
それを真面目にeclipseプラグインとして作りこむのって、
多分、きっと、余りコストパフォーマンス的によろしくないんだよね。
だって、単にプロジェクトの絶対パスと、
リソース生成ツールの出力先絶対パス合わせておけば、まぁ、そんなに問題ないし。
ワークスペース内でリフレッシュさえ忘れなければ。
まぁ、僕は忘れるケドネ。
それで、エクスプローラでリソースツリーを見て、ファイルがあるのに、
eclipseのワークスペース内にねぇよ!うぎゃぱー!!ってなる。
冷静に、eclipseのウィンドウ内でF5押せば良いだけなんだけど…。
と、言う訳で作りました。ResourceSynchronizer。
リソース作るツール内で、eclipseにHTTPリクエスト投げてクダサイ。
そしたら、ワークスペースリフレッシュ出来ます。まぁ、そんだけ。
機能の具体的内容は、アナウンスメールが力作なので、とりあえず全コピペ。
eclipseと独立したプロセス内で作成されたマテリアルを、 eclipseワークスペースをリフレッシュする事で、 自動的にリソースをeclipseワークスペース内に認識させる為のeclipseプラグイン ResourceSynchronizerをリリースします。 以下の Update サイトからインストールすることができます. http://eclipse.seasar.org/updates/3.3/ 現在のリリースでは、以下の実行環境でのみ、適切に動作します. 動作するJREは、1.5以上 eclipseは、3.3 です。 eclipseは、eclipse以外のプロセスが生成したマテリアルを、 例えそれが、ワークスペース内にあったとしても適切に検知する事が出来ず、 検知する為には、ワークスペース内をリフレッシュする必要があります。 例えば、antやmavenでリソースを生成する場合がこれにあたります。 ResourceSynchronizerでは、 外部のプロセスから、導入されているeclipseに対して、 HTTPリクエストを送信する事で、 自動的にワークスペース内をリフレッシュする事が出来ます。 具体的には、以下の機能を持ちます。 ・ワークスペースのリフレッシュする。 http://localhost:8386/ http://localhost:8386/refresh 対応するHTTPリクエストメソッドは、「GET」及び「POST」です。 リクエストパラメータを含まないHTTPリクエストを送信するとワークスペース全体をリフレッシュします。 リクエストパラメータとして、 ワークスペース内における相対パス=深度 を付加してHTTPリクエストを送信すると、それに応じた範囲をリフレッシュします。 深度としては、 ZERO 指定したパスのみリフレッシュ。対象のパスがファイルである場合のみ有効です。 ONE 指定したパス及び、その下の一階層のみリフレッシュ。 INFINITE 指定したパス及び、その下に含まれる全階層をリフレッシュ。 レスポンスとして、リフレッシュに成功したパスを改行区切りで返します。 例えば、ワークスペース内に、プロジェクトとして「exampleproject」があり、 そのプロジェクトに含まれる全てのリソースツリーをリフレッシュする場合には、 http://localhost:8386/refresh?exampleproject=INFINITE となります。 同様に、「exampleproject」の「src」フォルダの下一階層のみ、 加えて、「test」フォルダの下にある「HogeTest.java」をリフレッシュする場合には、 http://localhost:8386/refresh?exampleproject/src=ONE&test/HogeTest.java=ZERO となります。 ・ワークスペース内に含まれるリソースの一覧取得する。 http://localhost:8386/list リクエストパラメータを含まないHTTPリクエストを送信するとプロジェクト名の一覧を改行区切りで返します。 対応するHTTPリクエストメソッドは、「GET」及び「POST」です。 リクエストパラメータとして、 ワークスペース内における相対パス を付加してHTTPリクエストを送信すると、そのパスがディレクトリである場合、それに含まれるパスの一覧を、改行区切りで返します。 その際、パラメータの値は特に評価しません。 例えば、ワークスペース内に、プロジェクトとして「exampleproject」がある場合、 http://localhost:8386/list?exampleproject と送信すると、それに含まれるリソースのパスを以下の様に返します。 exampleproject/src/ exampleproject/test/ exampleproject/.project exampleproject/.classpath exampleproject/.metadata 複数のパスをリクエストパラメータとして送信すると、それぞれについて同様の処理を行い同時に一覧として返します。 ・ワークスペース内に含まれるJavaプロジェクトのソースフォルダをOSの絶対パスで取得する。 http://localhost:8386/srcloc 対応するHTTPリクエストメソッドは、「GET」及び「POST」です。 リクエストパラメータとして、 ワークスペース内におけるJavaプロジェクトの相対パス(プロジェクト名) を付加して、HTTPリクエストを送信すると、それに含まれるソースフォルダをOSの絶対パスで返します。 複数のパスが存在する場合、改行区切りとなります。 例えば、Windows上に存在するワークスペース内に、プロジェクトとして「exampleproject」がある場合、 http://localhost:8386/srcloc?exampleproject と送信すると、それに含まれるソースフォルダをOSの絶対パスで以下の様に返します。 c:/development/java/workspace/exampleproject/src c:/development/java/workspace/exampleproject/test