1.Projectを作成
New/'Project' を選択(Java Projectじゃないよ)
Wizerdの選択にてPlug-in Projectを選択.
Dialogに入力
Project name: tutorial.example1
Target Platform: an OSGi framework standard
(ほかそのまま)
Nextを押す.
#(OSGi framework standardが選べればEclipse 3.2でも良いはずです)
'Plug-in Content'のDialogとなる.
Finishを押す.
2.Activator.javaの編集
(面倒な人は編集しなくてもテンプレートで十分だよ.)
src/example/tutorial1/Activator.javaにここのコードを書き写す.
3.Plug-in Manifest Editorを使ってbuildする.
このEditor, META-INF/MANIFEST.MFをクリックすると立ち上がる.(プロジェクトができた時も立ち上がってる.)
一番左のタブ'Overview'にあるExportingの3項目
'3. Export the plug-in in a format suitable for deployment using the(?) Export Wizard'をクリック(Export Wizard部分)
で,Deployable Plugin-ins and fragmentsダイアログがでる.
DestinationタブのDirectoryを選択しテキトーな場所(ディレクトリ)を指定.(以降ここを${DIRECTORY}と呼ぶ)
Finishを押す.
${DIRECTORY}/plugins/tutorial.example1_1.0.0.jarが出来上がる.
4.FelixApplicationに対する修正.
ここのMain.javaにおいて
public static String PLUGINS_LOCATION = "file:/path/to/plugins/";
をpublic static String PLUGINS_LOCATION = "file:${DIRECTORY}/plugins/";
に変更.
5.実行!
FelixApplicationプロジェクトのexample.Mainクラスを実行.
Tutorial通りなら以下
Starting to listen for service events.
Eclipseのテンプレートのままなら
Hello World!!
とConsoleに表示されるはず.
どっちも止められないからConsole Viewの停止ボタンで止めてね.
以上.
ちなみに「Windowを出したいな.」なんてことでSwingなんかを使いたくなったらこんな感じにする.
追記:上のはちょっとまった.Felix側でjavax.swingをexportしてあげないといけない.このやり方はまた今度!
追記2:plugin側でjavax.swingを'Imported Pakages'にて設定したら,このFelixApplicationではこの一行を追加する.private static String getString_SystemPackages() {
List list = new ArrayList();
list.add("org.osgi.framework; version=1.3.0");
list.add("org.osgi.service.packageadmin; version=1.2.0");
list.add("org.osgi.service.startlevel; version=1.0.0");
list.add("org.osgi.service.url; version=1.0.0");
list.add("javax.swing"); // <- これを追加
return join(list, ",");
}
0 件のコメント:
コメントを投稿