Hello OSGI --- Apache Felix


Apache Felix

Felix是一個OSGi版本4規范的Apache實現。

OSGi是一個基於Java的服務平台規范,其目標是被需要長時間運行、動態更新、對運行環境破壞最小化的系統所使用。有許多公司(包括Eclipse IDE,它是第一個采用OSGi技術的重要項目)已經使用OSGi去創建其微內核和插件架構,以允許在運行時刻獲得好的模塊化和動態組裝特性。幾個其他項目如Apache Directory、Geronimo、Jackrabbit、Spring以及JOnAS也都正在轉向采用OSGi。

目前Felix已經實現了OSGI R4規范中的大部分內容。

felix的官方地址為

http://felix.apache.org/site/index.html

想下載felix及它的子工程可以到

http://felix.apache.org/site/downloads.cgi

下載最新版本的felix

安裝插件,插件的安裝地址是

http://www.ops4j.org/pax/eclipse/update

Felix環境配置

下載felix的最新版本,並且將最新的felix解壓到本地路徑。

新建一個Java工程

工程名為felix,這個工程名可以隨意設置

選擇下一步,修改輸出路徑

 復制解壓后的felix目錄中的內容到工程中。完成后的目錄如下所示:

將felix.jar添加到工程的目錄中,選擇Build Path->Add to Build Path

然后配置Run Configuration

修改配置

點擊Run,就可以運行felix,啟動后結果如下:

發布應用到Felix中

新建插件工程HelloFelix

完成后修改Activator類,加入兩段輸出:

 1     /*
 2      * (non-Javadoc)
 3      * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
 4      */
 5     public void start(BundleContext bundleContext) throws Exception {
 6         Activator.context = bundleContext;
 7         System.out.println("hello felix應用啟動!");
 8     }
 9 
10     /*
11      * (non-Javadoc)
12      * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
13      */
14     public void stop(BundleContext bundleContext) throws Exception {
15         Activator.context = null;
16         System.out.println("hello felix應用停止!");
17     }

 

完成后選擇Export,選擇Plug-in Development的Deployable plug-ins and fragments

選擇要導出的插件,Destination選項卡的Directory選擇Felix環境的物理地址,導出后,會在Felix工程的根目錄自動創建一個felix-cache和plugins目錄,bundle會默認導出這個目錄,單擊Finish按鈕。

點擊完成,得到結果,然后到工程中已經搭建好的環境felix項目中進行刷新,可以看到多出pluglins目錄

環境和工程都已經完成,下面安裝和卸載一下工程在felix中

啟動Felix,在Console中先使用install命令安裝bundle,接着使用start命令啟動bundle。

啟動的時候,start命令后接着那個bundle的啟動ID就可以啟動bundle。

停止的時候,stop命令后接着那個bundle的ID就可以停止bundle。

最后卸載工程HelloFelix,使用命令uninstall

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM