eclipsky200712
DESCRIPTION
Eclipse Plugin開発勉強会200712の資料です。TRANSCRIPT
ソースコードを読んでみよう
Eclipse Plugin開発勉強会2007/12
本日のテーマソースコード読
アジェンダ
連絡事項 20:00まで借りています その後懇親会 /忘年会やりたいです。
特に予約はしてません。自由参加です
自己紹介 プラグインのコードを読むには (基礎編 /こんぴろ )
EclipseSpyのコードを読んでみる (毛利さん )
EclipsePlatformのコードを読むには (深海編 /こんぴろ )
今回の自己紹介
新規ご参加 ITEngineerさん その他リピーターさんいらっしゃい でもやるよ自己紹介
お題 (お一人様最大 5分 )
お名前 (HNでもいいですよ ) 普段のお仕事 母国語 (プログラミング言語 ) ソースコード読んでます or 書くだけです or そう
いうお仕事ではありません etc...
へたこいた orz
1枚ペらシート用意お願いするのわすれたー! 次回こそ必ず !
こんぴろの場合
近藤寛喜と申します お仕事 :EclipseRCPを使ったアプリ開発 言語変遷 C+Pascal+Fortran(学校 )→PHP
+SQL(文化祭 )→VHDL/Ada(オブジェクト指向と出会う )→EmacsLisp→Perl(研究 )→Python(Zope)→Java(お仕事 )→Ruby(読むよ !)
そーすこーどは読み物です。 書いたものは作品です。 英語にチャレンジ中
みなさんどうぞ!
時計回りで。
ソースコード読んでますか ?
ソースコードを読む利点 コンテキストって聞いたことありませんか ? オブジェクト指向言語ではよく出てきます。
例 servletContext(J2EE) 例 Context(.NET)
その場の状態などを知っているもの =コンテキスト ソフトウェアに携わるものにとっての「空気」 ソースコードを読んでいないとコミュニケーションしづらい (形式手法 (仕様記述言語 )でも同じ )
ソースコードを読んでみよう
Eclipse Pluginの場合 (基礎編 )
アジェンダ
環境整備 プラグインを彩るライブラリについて知っておく プラグインの基礎情報を知る
依存関係について 拡張ポイントから攻める
PDEの使い方を共有する (っていうか、未だによくわからん )
環境整備
Eclipse 3.3から環境ごとの配布になりました。 プラグインのソースを読む場合は以下
Eclipse for RCP/Plug-in Developers Eclipse Classic
その他 EclipseSpyを入れておくと便利です。 kojihajiさんバックポートありがとう https://bugs.eclipse.org/bugs/show_bug.cgi?
id=210162
プラグインを彩るライブラリ
Eclipseは UIに Swing/AWTを使いません JFace/SWTを使います。 org.eclipse.swtや org.eclipse.jfaceのパッケージ よくわかんないクラスは基本ぐぐる(やっぱり重要)
プラグインのベースについて知っておく Equinox(OSGi)を使ってるということ程度
プラグインの基礎情報について知る
依存関係について プラグインは基本的に既存のプラグインに機能を追加していく
「 Plugin Registry 」ビューから「Open Dependency 」で依存しているプラグインを見られます。
もちろん PDEエディタでも見られます
拡張ポイントについて 既存のプラグインが機能を追加されるポイント
org.eclipse.ui.viewsとか org.eclipse.ui.editorsとか
uiプラグインと何もないプラグインについて
ほとんどのプロジェクトで JUnitで自動テストをしています。
Mylyn/ECFは CIもやってます。 http://mylyn.eclipse.org/bitten/
テスト容易性を上げるため、 ui関係のライブラリが必要なプラグインとそうではないプラグインとで分けられています。
org.eclipse.ui
EclipsePlatformの GUIのほとんどの機能を提供しているプラグイン
エディタだったら org.eclipse.ui.editors
ビューだったら org.eclipse.ui.views
拡張ポイントのヘルプも参考に(英語 ) http://help.eclipse.org/help33/topic/org.eclipse.platform.d
oc.isv/reference/extension-points/index.html
EclipseProjectのコードを読む
行儀の悪いプロジェクトはソースを添付したものを公開してない
CVSから落とすべし 各プロジェクトでリリース時に打たれたタグを元に探す
CVSの設定 (リポジトリパス )について
巨大なプロジェクトはそれぞれリポジトリが作成ずみ WTP/TPTP
Platformには Eclipseの基盤プロジェクト Equinox/Launcher/JDT/PDE/SWT/JFace
Toolsには開発を補助するツールのプロジェクト Mylyn/GEF
Technologyには新規技術のプロジェクト ECF/RAP/Babel
その他詳しくはWebで (http://wiki.eclipse.org/CVS_Howto)
PDEの使い方
プラグインの依存関係や拡張ポイントを探すためのパースペクティブ
Uiの拡張は Spyを使うと激しく便利 みなさんどうやって使われてますか ?
EclipseSpyについて
昨日いきなり振ってごめんなさい(毛利さん)
EclipsePlatformのコードを読む(深海編 )
こんぴろより
なぜ EclipsePlatformか
もはや Eclipseはただの IDEはない。 ポータブルに持ち運べる「環境」
Rich Ajax Platform Rich Server Platform
EclipseLauncher
各プラットフォームごとにランチャーを作成 プロジェクト内で各プラットフォームごとにソースがある EclipsePlatformの org.eclipse.equinox.executableにソースコードがある
JRE用のパスを用意するとそっちを参照したり、実は起動スプラッシュと EclipseWorkbenchの起動は別のプロセスで立ち上がってるとかおもしろい
Equinox
Eclipseの基盤フレームワーク ソースは添付済み どうやってクラスをロードしているのか どうやってプラグイン間の依存関係を作成しているのか OSGiコンソールへのコマンドの追加方法 どんな風に Eclipseが起動しているのか
その他
org.eclipse.equinox.registry 拡張ポイントのプラグイン
org.eclipse.update 更新サイト用のプラグイン だけと思いきや、起動時にプラグインを読み込むプラグイン