OSGI運用2 - 用Eclipse開發Bundle

Bundle開發過程中如何調試一直是個困擾的問題,今天我們看看Eclipse在這方面是如何解決的。

 

我用的Eclipse JavaEE Indigo 3.7.2版本。

 

第一步:開啓Eclipse,新增一個Plug-in項目。

 

第二步:輸入項目名稱HelloWorldBundle,注意這裏的插件運行方式要選擇an OSGi Framework

 

第三步:輸入Bundle有關的元數據信息,這裏我們使用默認值。我們選擇自動產生Activator類,以便簡化我們後面的處理。

 

第四步:我們選擇從Hello OSGi Bundle模板生成Bundle項目。

 

第五步:輸入Hello OSGi Bundle模板需要的啓動和停止信息。

 

第六步:到此爲止,Eclipse依據我們的選擇自動生成了HelloWorldBundle插件。雖然這是一個非常簡單的Bundle,但是毫無疑問,這個是一個完整的Bundle,它是可以直接運行的。

 

HelloWorldBundle的目錄結構:

 

Activator.java文件的內容:

複製代碼
package helloworldbundle;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

    /*
     * (non-Javadoc)
     * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
     */
    public void start(BundleContext context) throws Exception {
        System.out.println("Hello World!!");
    }
    
    /*
     * (non-Javadoc)
     * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
     */
    public void stop(BundleContext context) throws Exception {
        System.out.println("Goodbye World!!");
    }

}
複製代碼

 

MANIFEST.MF的內容:

複製代碼
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HelloWorldBundle
Bundle-SymbolicName: HelloWorldBundle
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: helloworldbundle.Activator
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
複製代碼

 

第七步:在Activator.java的start()stop()方法處增加兩個斷點:

 

第八步:在HelloWorldBundle項目上點擊鼠標右鍵,在彈出的Debug As功能裏面選擇OSGi Framework

 

第九步:一切OK,Eclipse切換到了Debug視圖,Console窗口出現了OSGi>提示符,代碼也在我們定義的start斷點處停了下來。

 

第十步:在OSGi>提示符後面輸入close命令,以便停止OSGi框架(shutdown and exit)。這個時候,代碼就會在stop斷點處停下來。

 

使用Eclipse提供的調試功能,將可以讓我們在Bundle的開發過程中如虎添翼了。

 

更多的參考鏈接:

Coding bundles on the Slug demo movie

Remote debugging on the Slug demo movie

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章