OSGi – 在 Eclipse 開發階段更新 bundle

在使用 Eclipse 開發 OSGi-based project 時, 我們可以在 Run -> Run Configuration -> OSGi Framework 建立一個執行環境, 如此便可以在 Eclipse 中執行我們的 OSGi bundle, 也可以 debug.

這樣雖然方便, 但還是有一個小問題, 就是在我們更改程式後, 執行中的 bundle 並不會自動更新, 必須要 Terminate 後再 Run 一次, 不太方便, 感覺又跟之前的 war 一樣, 需要重新啟動 AppServer. 既然使用 OSGi, 感覺應該要很容易更新才對.

其實這跟 IDE support 還不健全有關, 有個簡單的解法, 就是在 Run OSGi 之後, 先在 console 中執行 OSGi command, 先找出被修改的那個 bundle 的 id:

osgi> ss

然後在做完程式的修改後, 執行下列的 OSGi command:

osgi> refresh [id]

這樣就會單獨更新這個 bundle. 不管是修改 java class 或是修改 resource file, 都會更新.

refresh 這個指令在開發 web bundle 時, 會經常性更新 javascript, jsp 等檔案, 幫助很大喔.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s