Recent posts

Target Definitionを利用する

JAM Circle の開発には現在 Target Definition を利用しています。Target Definition とは何かと言うと、開発中のプラグインを載せるターゲットのEclipse環境の定義を記述できるファイルです。ターゲット環境の指定方法は4つあります。

  • Directory(FeatureになっていないPlugin用)
  • Software Site(更新サイト)
  • Instration(展開されたEclipse環境)
  • Feature

この中で「Software Site」は更新サイトから読み込む方式を取っています。JAM Circle で利用しているのもこの方式です。この方式の利点と欠点をまとめると、

利点

  • 異なるマシン間で同じターゲット環境を構築できる
  • Buckminsterというビルドツールでそのまま利用できる
  • 常に最新版を取得できる バージョンが指定されているため、最新版を常に取得できる訳ではないようです。

欠点

  • サイトの不調など、更新サイトから読み込めない事がある

といった感じです。

今回 Target Definition を利用したのは、Buckminster の利用のため、という面が強いですが、開発環境をそろえるのは面倒なので、利用されると良いでしょう。

JRubyをOSGi extensionにしたかったんだ・・・。

OSGiの仕様にはExtension BundleといってOSGi自体の機能を拡張するためのBundleがあります。Equinoxにも実装されており、これを利用すればこんな事も実現できるんじゃないか?と想像していたものがありました。それは、JRubyなどのJVM上で動く言語をOSGi extensionにすれば、Eclipse PluginもJava以外の言語で開発ができるのではないか、と言う事。ただそれは設定すればできそうな見通しはたったのですが、p2とセキュリティの仕様のためか、インストールすれば自動で設定を行う仕組みにはなっていないようです。調べた事のメモを残しておきます。

設定方法

configuration/config.iniのosgi.framework.extensionsにJVM言語Bundleを追加する

これだけです。

これを自動的に設定しようとしたけどダメだった

p2にはtouchpointという仕組みがあります。touchpointとは何かというと、一言でいうと、p2からインストールやアンインストールなど操作の最中、ファイルのコピーや設定をp2.infに書く事で実現する仕組みです。例えばあるfeatureをインストールしたときに、更新サイトを登録したいのであれば、そのfeatureのfeature.xmlがおいてある場所にp2.infを作成して下記のように書きます。

instructions.configure=\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//kompiro.org/jamcircle/daily/p2,name:JAMCircle Daily build,enabled:false);

#58は「:」の置換文字です。 instructions.${phase}名で、"org.eclipse.equinox.p2.touchpoint.eclipse.addRepository"がコマンド、後はコマンドの引数を指定しています。phaseはinstallやuninstallなど、イベントを記述しますが、いつ何が起こるのかはhelpに書かれていないのでわかりません:)

このtouchpointの中にはsetProgramPropertyという、Eclipse起動時にシステムプロパティに値を追加するtouchpointがあるので、これを利用してosgi.framework.extensionsを設定できないか試してみました。しかし、osgi.framework.extensionsは、Equinoxではorg.eclipse.osgiに対するfragmentという位置づけがなされているため、p2の中でorg.eclipse.osgiのfragmentのBundleを自動的に追加するようになっています。なので、JRubyのBundleをorg.eclipse.osgiのfragmentにしてみましたが、自動的に追加されるのはJARに固まっているものでないとうまく動かないと。JRubyの中のrubyのコードやらコマンドやら使えなくないのです。なのであきらめました。

なんかもったいない結末なのでログを取っておきます。

参考サイト

  • Posted: 2010-11-13 08:13 (Updated: 2010-11-13 08:25)
  • Author: kompiro
  • Categories: p2
  • Comments (0)

マイコミジャーナルで取り上げられました!

JAM Circleがマイコミジャーナルで取り上げられました! http://journal.mycom.co.jp/column/ide/090/index.html ありがとうございます!

0.9.0をリリースしました。

先月8/15にJAMCircle 0.9.0をリリースしましたー。

って元々ダ ウンロードそんなに多くない上、日本からのダ ウンロードはほぼ0なアプリケーション。でも、0.8.0からは日本語化してるので、使ってみよう、っていう方はどうぞ。ダウンロードサイトより落としてくださいませ。

そんな感じなので、チケット等もほぼ英語で登録するようにしてます。(へたくそな英語ですが。)今回実装した主な昨日は下記のとおりです。

Tracの チケットを取得するテンプレートを出力するプラグインを別途配布しているので、利用される方は更新サイトより適宜インストールしてくださいね。

それと、ボードのエクスポート、インポートを実現しました。なので、開発いただいたボードを他のユーザーが比較的利用しやすくなったのではないかと思います。ほんとはGmailからメー ルの件名を見て、特定の文字列が含まれてたらカードにする、とかやりたいんですけどね。今はSSL関係で障害があるので、まだできてません。

近いうちに0.9.1をリリース予定ですが、JRuby1.5.2のサポートとRubyGemsのサポートを追加する予定です。それができればSSL関係の障害を超えられるので、Gmailサポートを予定しています。

FreeformLayerのメモ

マイナス方向の座標にもスクロールできるようにするため、Freeform形式を試してみた。試した結果、うまく動作しないが、手応えがあったので、メモ。

GraphicalViewerにScalableFreeformRootEditPartをセットする。

    viewer = new ScrollingGraphicalViewer();
    rootPart = new ScalableFreeformRootEditPart();
    getGraphicalViewer().setRootEditPart(rootPart);

エディタ側のEditPartのルートが返却するオブジェクトはFreeformLayerやFreeformLayerPaneなどを使う。 これで表示だけはできたが、新しいFigureを登録するだけでもマイナス方向に座標軸が追加される。むう。

  • Posted: 2010-06-08 09:48 (Updated: 2010-06-08 09:49)
  • Author: kompiro
  • Categories: GEF
  • Comments (0)

ブログを始めました。

0.7.0をリリースしてから1年半。少しずつ開発環境を整備し、今では自動ビルド・テストとUIのスモークテストを実現しています。先日0.8.0、0.8.1とリリースしましたが、リリースまで時間がかかったのは、環境整備が主でした。そういう開発環境面のログや情報をまとめ、リリースのアナウンスをするためにブログを始めます。

  • Posted: 2010-05-05 05:30 (Updated: 2010-05-05 05:35)
  • Author: kompiro
  • Categories: (none)
  • Comments (0)